@lekam

Почему не работает mkdir?

Выполняю команду
mkdir -p /home/user/radio/audio/$(date -d"tomorrow" +%e%B)

получаю папку с завтрашней датой: /home/user/radio/audio/12мая и попутно создаётся несуществовавший каталог audio.
Удаляю каталог audio, пробую снова:
mkdir -p /home/user/radio/audio/$(date -d"4 days ago" +%e%B)

Ииииии получаю /home/user/7мая причём каталог audio появился где положено и в нём пусто.
Как так то?
  • Вопрос задан
  • 462 просмотра
Решения вопроса 1
unwrecker
@unwrecker
date -d"4 days ago" +%e%B

даёт пробел в начале строки. В итоге создаются 2 директории: /home/user/radio/audio/ и ./7мая
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Первое, что нужно сделать в таком случае - добавить к команде в начало "echo":
echo mkdir -p /home/user/radio/audio/$(date -d"4 days ago" +%e%B)

и далее вдумчиво рассматривать, что там выдаётся. В данном случае - лезет лишний пробел.

Также имеет смысл брать аргумент в кавычки:
mkdir -p "/home/user/radio/audio/$(date -d"4 days ago" +%e%B)"

Внутри двойных кавычек - спецсимволы $(...) (а также вариант для переменных окружения) резолвятся; но полученные таким путём пробелы не рассматриваются как разделители аргументов.
В Вашем случае такое решение приведёт к пробелам в имени файла. Тут оно Вам вряд ли нужно - но учтите этот вариант.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы