Bagaimana saya bisa menghapus semua file .swp di semua subdirektori saya di Linux?
Bagaimana saya bisa menghapus semua file .swp di semua subdirektori saya di Linux?
Jawaban:
Hapus semua file * .swp di bawah direktori saat ini, gunakan findperintah di salah satu bentuk berikut:
find . -name \*.swp -type f -delete
The -deletepilihan berarti menemukan akan langsung menghapus file yang cocok. Ini adalah kecocokan terbaik dengan pertanyaan aktual OP.
Menggunakan -type fmeans find hanya akan memproses file.
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
Opsi -execmemungkinkan find untuk mengeksekusi perintah arbitrer per file. Varian pertama akan menjalankan perintah sekali per file, dan yang kedua akan menjalankan perintah sesedikit mungkin dengan mengganti {}parameter sebanyak mungkin.
find . -name \*.swp -type f -print0 | xargs -0 rm -f
Piping output ke xargsdigunakan dari perintah per-file yang lebih kompleks daripada yang mungkin dengan -exec. Opsi -print0memberi tahu finduntuk memisahkan kecocokan dengan ASCII NULL alih-alih baris baru, dan -0memberi tahu xargsuntuk mengharapkan input yang dipisahkan NULL. Ini membuat konstruksi pipa aman untuk nama file yang mengandung spasi putih.
Lihat man finddetail dan contoh lebih lanjut.
find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;
bash 4.0
shopt -s globstar
rm -f /path/**/*.swp
Untuk mencari di bawah direktori home saya (dan menggunakan GNU 'find' dan 'xargs'), saya akan menggunakan:
find $HOME -name '*.swp' -print0 | xargs -0 rm -f
Penggunaan ' -print0' dan ' -0' berarti bahwa nama-nama akan dibatasi oleh karakter ASCII NUL '\ 0', dan ini akan menangani jalur file dengan kosong dll dalam namanya. Jika Anda merasa memiliki direktori (atau file perangkat, atau FIFO, atau non-file lainnya) di bawah direktori Anda yang diakhiri dengan '.swp', Anda dapat menambahkan opsi ' -type f' untuk 'menemukan'. Jika Anda hanya memiliki direktori, perintah di atas akan gagal menghapusnya dengan berisik.