GNU/Linux >> Belajar Linux >  >> Linux

Hapus file yang cocok di semua subdirektori

Hapus semua file *.swp di bawah direktori saat ini, gunakan find perintah dalam salah satu bentuk berikut:

  • find . -name \*.swp -type f -delete

    -delete opsi berarti find akan langsung menghapus file yang cocok. Ini adalah yang paling cocok dengan pertanyaan aktual OP.

    Menggunakan -type f berarti find hanya akan memproses file.

  • find . -name \*.swp -type f -exec rm -f {} \;
    find . -name \*.swp -type f -exec rm -f {} +

    Opsi -exec memungkinkan find untuk mengeksekusi perintah sewenang-wenang per file. Varian pertama akan menjalankan perintah satu kali per file, dan yang kedua akan menjalankan perintah sesedikit mungkin dengan mengganti {} dengan parameter sebanyak mungkin.

  • find . -name \*.swp -type f -print0 | xargs -0 rm -f

    Menyalurkan output ke xargs digunakan dari perintah per-file yang lebih kompleks daripada yang dimungkinkan dengan -exec . Opsi -print0 memberi tahu find untuk memisahkan kecocokan dengan ASCII NULL alih-alih baris baru, dan -0 memberi tahu xargs untuk mengharapkan input yang dipisahkan NULL. Ini membuat konstruksi pipa aman untuk nama file yang berisi spasi.

Lihat man find untuk detail dan contoh lebih lanjut.


find . -name '*.swp' -delete

Setelah menemukan, lakukan penghapusan itu sendiri untuk menghilangkan risiko ruang yang disematkan dalam nama file, ...Untuk keamanan tambahan, pertimbangkan juga untuk menambahkan -type f hanya untuk file.


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

Linux
  1. Hapus Semua File Kecuali Di Subdirektori Tertentu Dengan Temukan?

  2. Gunakan Temukan Untuk Menemukan Direktori Tertentu Dan Hapus Semua File Di dalamnya Kecuali Satu Direktori?

  3. Bagaimana menemukan semua file yang jarang di Linux

  1. daftar/temukan semua file biasa di semua subdirektori tidak termasuk file biner

  2. Skrip Bash untuk menghapus file yang lebih lama dari x hari dengan subdirektori

  3. Bagaimana cara menghapus semua file dalam direktori kecuali beberapa?

  1. Cara gzip semua file di semua sub-direktori di bash

  2. Hapus semua kecuali 1000 file acak dalam direktori

  3. Cara lebih cepat untuk menghapus sejumlah besar file