Tiga opsi lagi.
Gunakan find
dengan -mindepth 1
dan -delete
:
Levelstingkatan tingkat
Jangan menerapkan tes atau tindakan apa pun pada level yang kurang dari level (bilangan bulat non-negatif).
Indtahu ke 1 berarti memproses semua file kecuali argumen baris perintah.
-hapus
Hapus file; benar jika penghapusan berhasil. Jika penghapusan gagal, pesan kesalahan dikeluarkan. Jika failsdelete gagal, status keluar find akan menjadi nol (ketika akhirnya keluar). Penggunaan −delete secara otomatis mengaktifkan opsi −depth.
Tes dengan hati-hati dengan opsi -depth sebelum menggunakan opsi ini.
# optimal?
# -xdev don't follow links to other filesystems
find '/target/dir with spaces/' -xdev -mindepth 1 -delete
# Sergey's version
# -xdev don't follow links to other filesystems
# -depth process depth-first not breadth-first
find '/target/dir with spaces/' -xdev -depth -mindepth1 -exec rm -rf {} \;
2. Gunakan find
, tetapi dengan file, bukan direktori. Ini menghindari kebutuhan untuk rm -rf
:
# delete all the files;
find '/target/dir with spaces/' -type f -exec rm {} \;
# then get all the dirs but parent
find '/target/dir with spaces/' -mindepth 1 -depth -type d -exec rmdir {} \;
# near-equivalent, slightly easier for new users to remember
find '/target/dir with spaces/' -type f -print0 | xargs -0 rm
find '/target/dir with spaces/' -mindepth 1 -depth -type d -print0 | xargs -0 rmdir
3. Silakan dan hapus direktori induk, tetapi buat ulang. Anda bisa membuat fungsi bash untuk melakukan ini dengan satu perintah; inilah satu kalimat sederhana:
rm -rf '/target/dir with spaces' ; mkdir '/target/dir with spaces'