Katakanlah saya memiliki pohon direktori seperti ini:
FOLDER:
file1
file2
file3
Subfolder1:
file1
file2
Subfolder2:
file1
file2
Jika saya menggunakan rm -r FOLDER/*
, semua yang ada di FOLDER akan dihapus termasuk sub-direktori. Bagaimana saya bisa menghapus semua file dalam FOLDER dan dalam sub-direktori tanpa menghapus direktori yang sebenarnya?
sumber
Jika versi
find
Anda tidak mendukung,-delete
Anda dapat menggunakan yang berikut untuk menghapus setiap file di direktori saat ini dan di bawah ini.sumber
-exec rm {} +
akan lebih cepat, terutama jika ada banyak file.find . ! -type d -exec rm {} +
menghapus tautan sym juga.find
tidak mendukung-delete
, mungkin juga tidak mendukung-exec ... {} +
. Cara yang disarankan untuk mengatasinya adalahfind ... -print0 | xargs -r0 rm
(jika seseorang mengharapkan banyak kecocokan potensial).-exec ... {} +
adalah POSIX, tetapi-delete
tidak. (-print0
find
implementasi non-POSIX yang mendukung-print0
tetapi tidak-exec ... {} +
(saya tidak ingat tentang itu-delete
). Satu di OS X, yang lain di Solaris (beberapa tahun yang lalu pada sistem yang sangat konservatif diperbarui). Anda juga dapat menggantinya-print0
dengan-printf '%p\0'
. Bagaimanapun, ini adalah Tanya Ubuntu dan bukan Unix & Linux dan Ubuntu menggunakan GNU find sejak selamanya.