GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menghapus Direktori Secara Rekursif Dengan Wildcard?

Saya sedang mengerjakan SSH pada WD My Book World Edition. Pada dasarnya saya ingin memulai pada tingkat direktori tertentu, dan secara rekursif menghapus semua sub-direktori yang cocok dengan .Apple* . Bagaimana saya melakukannya?

Saya mencoba

rm -rf .Apple* dan rm -fR .Apple*

tidak menghapus direktori yang cocok dengan nama itu di dalam sub-direktori.

Jawaban yang Diterima:

find sangat berguna untuk melakukan tindakan secara selektif pada seluruh pohon.

find . -type f -name ".Apple*" -delete

Di sini, -type f memastikan itu adalah file, bukan direktori, dan mungkin tidak persis seperti yang Anda inginkan karena itu juga akan melewati symlink, soket, dan hal-hal lain. Anda dapat menggunakan ! -type d , yang secara harfiah berarti bukan direktori, tetapi Anda juga dapat menghapus karakter dan memblokir perangkat. Saya sarankan melihat -type predikat pada halaman manual untuk find .

Untuk melakukannya secara ketat dengan wildcard, Anda memerlukan dukungan shell tingkat lanjut. Bash v4 memiliki globstar opsi, yang memungkinkan Anda mencocokkan subdirektori secara rekursif menggunakan ** . zsh dan ksh juga mendukung pola ini. Dengan menggunakan itu, Anda dapat melakukan rm -rf **/.Apple* . Ini bukan standar POSIX, dan tidak terlalu portabel, jadi saya akan menghindari menggunakannya dalam skrip, tetapi untuk tindakan shell interaktif satu kali, tidak masalah.


Linux
  1. Cara Menemukan dan Menghapus Direktori dan File Kosong di Linux

  2. Cara menghapus penggunaan non-root dengan UID 0 di Linux

  3. Bagaimana cara mendaftar direktori secara rekursif di C di Linux?

  1. Bagaimana cara menghapus file dengan nama ini di linux:-]???????q

  2. Bagaimana cara menghapus file dengan nama aneh?

  3. Bagaimana cara mengganti karakter dengan sed secara rekursif?

  1. Cara Menghapus Akun Pengguna dengan Direktori Rumah di Linux

  2. Cara Mencari dan Menghapus Direktori Secara Rekursif di Linux

  3. Mengalami Masalah Dengan Cari Perintah Pemangkasan Direktori?