Было несколько способов добавить файл:
Из stackoverflow :
- Получить дату в виде строки
Это довольно легко. Просто используйте команду date с опцией +. Мы можем использовать обратные пометки, чтобы зафиксировать значение в переменной.
$ DATE=`date +%d-%m-%y`
Вы можете изменить формат даты, используя различные параметры%, как подробно описано на странице справки по дате.
- Разделить файл на имя и расширение.
Это немного сложнее. Если мы думаем, что они будут только один. в имени файла мы можем использовать вырезать. в качестве разделителя.
$ NAME=`echo $FILE | cut -d. -f1
$ EXT=`echo $FILE | cut -d. -f2`
Тем не менее, это не будет работать с несколькими. в имени файла. Если мы используем bash - которым вы, вероятно, являетесь - мы можем использовать некоторую магию bash, которая позволяет нам сопоставлять шаблоны при расширении переменных:
$ NAME=${FILE%.*}
$ EXT=${FILE#*.}
Собрав их вместе, мы получим:
$ FILE=somefile.txt
$ NAME=${FILE%.*}
$ EXT=${FILE#*.}
$ DATE=`date +%d-%m-%y`
$ NEWFILE=${NAME}_${DATE}.${EXT}
$ echo $NEWFILE
somefile_05-10-15.txt
И если мы меньше беспокоимся о читабельности, мы делаем всю работу в одной строке (с другим форматом даты):
$ FILE=somefile.txt
$ FILE=${FILE%.*}_`date +%d%b%y`.${FILE#*.}
$ echo $FILE
somefile_05oct15.txt
Другие способы были бы:
$ дата ср. 16 октября 19:20:51 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2013
Если вы действительно хотите, чтобы имена файлов были такими, вам нужно заключить эту строку в кавычки.
$ touch "foo.backup. $(date)"
$ ll foo * -rw-rw-r-- 1 saml saml 0 окт 16 19:22 foo.backup.Ср 16 октября 19:22:29 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2013
Вы, вероятно, думаете о другой строке, которая будет добавлена, но я думаю. Я обычно использую что-то вроде этого:
$ touch "foo.backup.$(date +%F_%R)"
$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:25 foo.backup.2013-10-16_19:25
См. Справочную страницу для даты для большего количества кодов форматирования вокруг вывода для даты и времени.
Дополнительные форматы
Если вы хотите получить полный контроль, если вы обратитесь к странице руководства, вы можете сделать что-то вроде этого:
$ date +"%Y%m%d"
20131016
$ date +"%Y-%m-%d"
2013-10-16
$ date +"%Y%m%d_%H%M%S"
20131016_193655