Как заставить скрипт bash генерировать новое имя файла каждый раз, когда он запускается?

Я хотел бы создавать файл .tar для определенного каталога каждый день недели. Я бы хотел сделать это с помощью bash-скрипта, создающего tar-файл каждый день с помощью crontab.

Мне было интересно, есть ли способ отрегулировать имя файла tar, который создает скрипт bash? Прямо сейчас это то же самое каждый раз, когда файл создается, потому что bash имеет только одну команду: tar -cvf file.tar /home/name/folder/

Но я бы хотел, чтобы он немного отличался в зависимости от дня, например. FileTus.tar, FileWed.tar, FileFri.tar и др.

Есть ли способ сделать это через терминальные команды?

Спасибо

4
задан 14 August 2012 в 18:22

2 ответа

Команда date может создать дату в виде текста в любом формате, который вы хотите. Затем вы можете использовать его в сценарии, например:

tar -cvf File$(date +%a).tar /home/name/folder

. Это приведет к FileMon.tar, FileTue.tar, как указано выше. См. man date для описания различных форматов даты, которые он может создавать.

0
ответ дан 14 August 2012 в 18:22

Вместо просто названий дней, почему бы не сделать полный формат даты? Таким образом, одно и то же имя файла не генерируется каждую неделю:)

Что-то вроде этого -

nits@excalibur:~$ tar -cvf /home/nits/Desktop/File$(date +%d%B%Y).tar Music/

будет выдавать такой результат -

nits@excalibur:~$ ls ~/Desktop/
File14August2012.tar

Для чего-то с отметкой времени (как указано в комментариях):

nits@excalibur:~$ tar -cvf "/home/nits/Desktop/File$(date +%d%B%Y_%H:%M).tar" Music/
nits@excalibur:~$ ls ~/Desktop/
File14August2012_20:14.tar
0
ответ дан 14 August 2012 в 18:22

Другие вопросы по тегам:

Похожие вопросы: