Saya membuat skrip cadangan cepat yang akan membuang beberapa database ke dalam struktur direktori yang bagus / rapi dan saya menyadari bahwa saya perlu menguji untuk memastikan bahwa direktori ada sebelum saya membuatnya. Kode yang saya miliki berfungsi, tetapi tampaknya ada cara yang lebih baik untuk melakukannya. Ada saran?
[ -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
sumber
sumber
Jawaban:
Anda dapat menggunakan
-p
parameter, yang didokumentasikan sebagai :Begitu:
sumber
alias mkdirs=mkdir -p
sumber
Sementara jawaban yang ada pasti memecahkan tujuan, jika Anda ingin mereplikasi struktur direktori bersarang di bawah dua subdirektori yang berbeda, maka Anda dapat melakukan ini
Ini akan membuat struktur direktori berikut di bawah direktori dari mana ia dipanggil
Contoh diambil dari tautan ini untuk membuat struktur direktori SBT
sumber
{...,...}
ada di bash dan mengapa apa yang Anda lakukan masuk akal. Penjelasan singkat tentang ekspansi brace akan bermanfaat bagi pengguna lain. "Anda bisa melakukan ini" dan "ini" meninggalkan imajinasi Anda.sumber
newDir/
.