Estou criando um script de backup rápido que despejará alguns bancos de dados em uma estrutura de diretórios agradável / legal e percebi que preciso testar para garantir que os diretórios existam antes de criá-los. O código que tenho funciona, mas parece que existe uma maneira melhor de fazê-lo. Alguma sugestão?
[ -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
fonte
fonte
Respostas:
Você pode usar o
-p
parâmetro, que está documentado como :Assim:
fonte
alias mkdirs=mkdir -p
fonte
Embora as respostas existentes resolvam definitivamente o objetivo, se você deseja replicar a estrutura de diretórios aninhados em dois subdiretórios diferentes, você pode fazer isso
Ele criará a seguinte estrutura de diretório no diretório de onde é chamada
O exemplo foi retirado deste link para criar a estrutura de diretórios do SBT
fonte
{...,...}
está no bash e por que o que você faz faz sentido. Uma breve explicação da expansão da cinta seria benéfica para outros usuários. Um "você pode fazer isso" e obter "isso" deixa um pouco para a imaginação.fonte
newDir/
.