Saya dapat menggunakan yang berikut ini untuk menghapus direktori target dan secara rekursif semua subdirektori dan kontennya.
find '/target/directory/' -type d -name '*' -print0 | xargs -0 rm -rf
Namun, saya tidak ingin direktori target dihapus. Bagaimana saya bisa menghapus hanya file dalam target, subdirektori, dan isinya?
linux
macos
command-line
terminal
Michael Prescott
sumber
sumber
Tiga opsi lagi.
Gunakan
find
dengan-mindepth 1
dan-delete
:2. Gunakan
find
, tetapi dengan file, bukan direktori. Ini menghindari kebutuhan untukrm -rf
:3. Silakan dan hapus direktori induk, tetapi buat ulang. Anda bisa membuat fungsi bash untuk melakukan ini dengan satu perintah; inilah satu kalimat sederhana:
sumber
Bagaimana tentang
Jika mungkin ada file yang dimulai dengan. di direktori target.
Detik ini akan cocok dengan semua yang dimulai dengan a., Kecuali. dan .. Itu akan gagal pada nama-nama seperti .a, tapi itu tidak terlalu umum. Itu bisa di-tweak jika perlu untuk menutupi semua case.
sumber
sumber