Saya secara rutin menggunakan bind mounts untuk membantu membuat ruang tersedia di banyak lokasi tanpa harus memiliki beberapa volume logis / partisi fisik / LUN, dll.
Sebagai contoh, saya mungkin memasang LV 200G di /space
. Dari sana, saya akan membuat subdirektori seperti var_opt
dan var_log
yang kemudian saya bisa ikat mount ke /var/opt
dan /var/log
masing-masing.
Ketika melakukan pembersihan pada direktori 'space', apakah mungkin mengecualikan direktori dari rm -rf
berlari di dalam /space
?
Contoh:
# pwd
/space
# rm -rf * {except-for-var_opt-and-var_log}
Apakah ada cara berbeda atau lebih baik (tetapi juga sederhana) untuk mencapai apa yang saya coba lakukan yang belum saya pikirkan?
-0
)! Ia mengharapkan input dikutip dengan cara yang sangat aneh itufind
tidak menghasilkan. Jadi perintah ini akan gagal total jika ada nama file yang mengandung spasi atau\'"
. Sebaliknya, gunakan-exec
: temukan / ruang! -iregex '(var_opt | var_log)' -exec rm {} +. Or since
-iregex` khusus untuk menemukan GNU, gunakan-delete
tindakan:find /space ! -iregex '(var_opt|var_log)' -delete
.Sederhana secara konseptual, dan memiliki risiko kesalahan yang rendah:
Anda juga dapat menggunakan gumpalan diperpanjang ksh:
Ini juga tersedia dalam bash jika Anda mengaktifkannya:
Ditto dalam zsh:
Zsh juga memiliki gumpalan diperpanjang sendiri:
sumber
Jika nama file input Anda dihasilkan oleh pengguna, Anda harus berurusan dengan nama file mengejutkan yang mengandung spasi, ', atau "dalam nama file.
Penggunaan
xargs
dapat menyebabkan kejutan tidak menyenangkan karena masalah pemisah .GNU Parallel tidak memiliki masalah itu.
Tonton video intro untuk GNU Parallel untuk belajar lebih banyak.
sumber
Jika direktori yang ingin Anda pertahankan sebenarnya adalah mountpoints, Anda mungkin dapat menggunakannya
--one-file-system
dalam GNUrm
.Saya belum menyelidiki bagaimana ini diterapkan, tetapi saya menduga ini tidak akan melakukan apa yang Anda inginkan jika bind mount berasal dari dalam sistem file yang sama, jadi hati-hati!
rm
tidak punya--no-act
opsi, tetapi Anda dapat pipayes no | rm -ir .
sebagai contoh.sumber