Команда терминала OS X для создания файла с именем на текущую дату - PullRequest
10 голосов
/ 17 марта 2011

Я установил задачу cron и хочу сохранить вывод в файл.Файл должен иметь имя, основанное на времени выполнения cron (например, 20110317-113051.txt).

Моя фактическая команда cron выглядит следующим образом:

lynx -dump <a href="http://somesite/script.php" rel="noreferrer">http://somesite/script.php</a> > /Volumes/dev0/textfile.txt

Я хочу, чтобы textfile был заменен какой-то уникальной отметкой времени.

Я пробовал

lynx -dump <a href="http://somesite/script.php" rel="noreferrer">http://somesite/script.php</a> > $(date).txt
, но я получаю сообщение об ошибке, что команда неоднозначна.

Спасибо за вашупомогите!

Сорин

Ответы [ 2 ]

13 голосов
/ 17 марта 2011

Команде date можно присвоить формат, чтобы точно определить, в какой форме она генерирует даты. Выглядит так, как будто вы хотите $(date +%Y%m%d-%H%M%S).txt. В этом формате выходные данные date должны быть свободны от пробелов, скобок и т. Д., Что в противном случае может привести к путанице в оболочке или команде lynx.

См. http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/date.1.html для документации команды date и http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/strftime.3.html для документации строки формата, которая аналогична функции strftime в стандартной библиотеке.

10 голосов
/ 17 марта 2011

Вам необходимо указать имя файла в кавычках, так как в дате по умолчанию будут специальные символы:

lynx -dump http://somesite/script.php > "$(date).txt"

Как говорит @Gareth, вы должны указать строку формата для даты, чтобы получить более читаемое / управляемое имя файла, например,

lynx -dump http://somesite/script.php > "$(date +%Y%m%d-%H%M%S).txt"
...