Intereting Posts
Изменение имени хоста на рабочем столе Linux Mint до случайного значения во время загрузки Архив для корневой файловой системы с быстрым произвольным доступом Как узнать, безопасно ли использовать torghost? Сценарий, написанный с помощью скриптов, с помощью сокета Как установить символы отладки для пакета corosync в CentOS? Невозможно прочитать или распаковать определенные архивы на одном конкретном сервере Возьмите стандартный ввод / вывод запущенного процесса под FreeBSD / macOS Разрешить FTP только через VPN Найти изображения по размеру: find / file / awk systemd: запуск сценария при завершении работы после того, как файловые системы установлены только для чтения Как вернуть диалоговое окно вперед? Почему вывод для `grep -o` совпадает с LC_ALL = C или без него? Переключить тачпад в HP ProBook 4530s Сортировка файлов в соответствии с размером рекурсивно Получите более 2 ГБ ограничений на создание PDF-файлов с помощью ImageMagick

Один макет mkdir с именем каталога как дни?

Как создать каталоги, названные днями недели (например, понедельник, вторник, суббота) внутри каталога, например / tmp / только в одной команде?

Подобно комбинации mkdir с date +%A или любым другим.

 mkdir -p /tmp/"$(date +%A)" ---> /tmp/Tuesday 

Должно быть, как показано ниже, после выполнения команды.

 /tmp/Monday /tmp/Tuesday . . . /tmp/Saturday 

Я хочу это в одной команде, а не в скрипте.

Вы можете использовать следующую команду для получения желаемого результата:

 for i in {1..7}; do mkdir /tmp/$(date +"%A" --date "$i days ago"); done 

Вы можете использовать расширение скобки:

 mkdir -p /tmp/{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday} 

Вышеупомянутое эквивалентно этому (что также является одной командой):

 mkdir -p /tmp/Sunday /tmp/Monday /tmp/Tuesday /tmp/Wednesday /tmp/Thursday /tmp/Friday /tmp/Saturday 

С zsh :

 zmodload zsh/langinfo # if not already loaded mkdir /tmp/${(v)^langinfo[(I)DAY_*]} 

Это использует имена дней в вашем регионе. Как одна команда:

 zsh -c 'zmodload zsh/langinfo && mkdir /tmp/${(v)^langinfo[(I)DAY_*]}' 

$langinfo – это специальный ассоциативный массив, который предоставляет некоторые настройки локали, включая имена дней. $langinfo[(I)DAY_*] выводит ключи этого массива, соответствующие DAY_* (это DAY_1 , DAY_1 …). С флагом расширения параметра (v) мы вместо этого расширяем значения для этих ключей. ^ распределяет эти элементы так, чтобы он становился /tmp/value1 , /tmp/value2

С любой оболочкой, подобной POSIX, вы также можете:

 (cd /tmp && IFS=';' && set -o noglob && mkdir $(locale day)) 

locale day возвращает a ; -раздельный список имен дней в текущей локали. Мы используем оператор split + glob на нем (оставьте без изменений команду $(...) кавычек) после отключения части glob ( set -o noglob ) и set -o noglob разделенную часть для разделения ; ( IFS=';' ).