Назад | Перейти на главную страницу

Перенаправить вывод в подпапки, которые еще не существуют

В настоящее время я перенаправляю вывод скрипта crontab в файл в какой-то существующей папке, например:

echo "test" > `date "+/tmp/%Y%m%d_%H%M.log"`

Я хочу перенаправить вывод во вложенные папки, которые, возможно, еще не существуют (.../year/month/..., поэтому должны быть созданы подпапки:

echo "test" > `date "+/tmp/%Y/%m/%d_%H%M.log"`

Как я могу этого добиться?

Просто создайте каталог. В -p Флаг для mkdir выполняет две задачи:

  • Создайте весь путь
  • Не жалуйтесь, если дирекция уже существует

Так:

mkdir -p  $(date "+/tmp/%Y/%m/") && echo "test" > $(date "+/tmp/%Y/%m/%d_%H%M.log")

В следующий раз задавайте подобные вопросы на unix.stackexchange, пожалуйста, здесь это немного оффтоп.

Вам необходимо создать папку (и), используя mkdir -p команда вроде:

mkdir -p `date "+/tmp/%Y/%m/"`

После этого вы можете безопасно выполнить команду echo.

echo "test" > `date "+/tmp/%Y/%m/%d_%H%M.log"`