Я создаю сценарий быстрого резервного копирования, который выводит некоторые базы данных в красивую / аккуратную структуру каталогов, и я понял, что мне нужно проверить, чтобы убедиться, что каталоги существуют, прежде чем я их создаю. Код у меня работает, но кажется, что есть лучший способ сделать это. Какие-либо предложения?
[ -d "$BACKUP_DIR" ] || mkdir "$BACKUP_DIR"
[ -d "$BACKUP_DIR/$client" ] || mkdir "$BACKUP_DIR/$client"
[ -d "$BACKUP_DIR/$client/$year" ] || mkdir "$BACKUP_DIR/$client/$year"
[ -d "$BACKUP_DIR/$client/$year/$month" ] || mkdir "$BACKUP_DIR/$client/$year/$month"
[ -d "$BACKUP_DIR/$client/$year/$month/$day" ] || mkdir "$BACKUP_DIR/$client/$year/$month/$day"
bash
shell
recursion
subdirectory
Topher Fangio
источник
источник
Ответы:
Вы можете использовать
-p
параметр, который задокументирован как :Так:
источник
alias mkdirs=mkdir -p
источник
Хотя существующие ответы определенно решают задачу, если вы хотите скопировать структуру вложенных каталогов в двух разных подкаталогах, вы можете сделать это
Это создаст следующую структуру каталогов под каталогом, откуда он вызывается
Пример взят из этой ссылки для создания структуры каталогов SBT
источник
{...,...}
в bash и почему то, что вы делаете, имеет смысл. Краткое объяснение расширения скобок будет полезно для других пользователей. «Вы можете сделать это» и получить «это» оставляет немного воображения.источник
newDir/
.