Bagaimana cara menghapus semua subdirektori? (unix shell scripting)
Saya memiliki direktori bernama "cdrs-roaming". Setiap hari saya menerima satu atau lebih file .zip dan mengekstraknya dengan ini:
#!/bin/bash
for i in *.zip
do
j=${i//\.zip/} mkdir $j
cd $j unzip ../$i
cd -
done
Lalu saya punya contoh: "example1.zip" dan "example1"; "example2.zip" dan "example2"
Saya menghapus semua file zip (dalam hal ini: "example1.zip" dan "example2.zip") dengan ini:
#! /bin/bash
find /dados/cdrs-roaming/*.zip -mtime +1 -exec rm {} \;
Jadi saya ingin menghapus direktori (atau folder - saya benar-benar tidak tahu perbedaannya) "example1" dan "example2". Saya sudah mencoba ini:
#! /bin/bash
find /dados/cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
Tapi itu juga menghapus "cdrs-roaming". Saya juga mencoba menggunakan:
find /cdrs-roaming/ -type d -mtime +1 -exec rm -rf {} \;
Tetapi mengembalikan: find: '/ cdrs-roaming /': Tidak ada file atau direktori seperti itu
Ada ide untuk melakukan ini? Saya hanya perlu menghapus direktori dalam "cdrs-roaming" tetapi saya tidak dapat menghapus apa pun di dalamnya (file .sh saya ada di dalamnya)
Jawaban
Karena Anda menggunakan bash, bagaimana dengan
rm -rf /dados/cdrs-roaming/*/
Garis miring terakhir memastikan bahwa bash hanya memperluas pola ke direktori.
Gunakan -mindepth 1
opsi:
find /dados/cdrs-roaming/ -mindepth 1 -type d -mtime +1 -exec rm -rf {} \;