Попытка создать папку с датой и временем с пробелом

Я пытаюсь создать папку, используя:

mkdir $(date +%Y-%m-%d %H%M) 

Итак, вы видите пробел между ними, и я знаю, что это не лучшая практика, но я хотел бы заставить ее работать.

Я пытался сбежать из космоса, использовать кавычки, но ничего не получается, и это сводит меня с ума.

Есть идеи, пожалуйста?

3
задан 10 August 2019 в 15:27

1 ответ

Вам нужны кавычки оба вокруг целого $(...) замена команды (должны быть "двойные кавычки"), а также вокруг аргумента строки формата date ("дважды" или 'единственный' хорошо):

mkdir "$(date '+%Y-%m-%d %H%M')"

Если Вы не заключите в кавычки аргументы, содержащие пробелы (включая замены команды, которые могли бы потенциально иметь пробелы в их результате), то они подвергнутся разделению слова оболочкой, и Вы заканчиваете с несколькими отдельными аргументами вместо одного, который будет интерпретироваться по-другому командой.

Основное различие между "двойными" и 'единственными' кавычками - то, что Вы можете все еще иметь переменное расширение и управлять заменой в двойных кавычках, тогда как одинарные кавычки предотвращают любой вид оценки и заставляют оболочку рассматривать строку буквально как есть.

7
ответ дан 1 December 2019 в 13:22

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

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