![Unduh File ISO Windows 11 Resmi (Versi Terbaru)](/f/14b13e9b0ea573ace6cdd05685e3062a.jpg?width=100&height=100)
Terkadang Anda masuk ke situasi di mana Anda perlu hapus semua file dalam direktori atau cukup bersihkan direktori dengan menghapus semua file kecuali file dari jenis tertentu (diakhiri dengan ekstensi tertentu).
Pada artikel ini, kami akan menunjukkan kepada Anda cara menghapus file di direktori kecuali ekstensi atau jenis file tertentu menggunakan rm, Temukan dan globignore perintah.
Sebelum kita melangkah lebih jauh, mari kita mulai dengan melihat secara singkat satu konsep penting di Linux – pencocokan pola nama file, yang akan memungkinkan kita untuk menangani masalah yang kita hadapi.
Disarankan Baca:Gunakan perintah find untuk Mencari Beberapa Nama File/Ekstensi di Linux
Di Linux, pola shell adalah string yang terdiri dari karakter khusus berikut, yang disebut sebagai: wildcard atau karakter meta:
*
- cocok dengan nol atau lebih karakter?
- cocok dengan karakter tunggal mana pun[urutan]
- cocok dengan karakter apa pun di seq[! seq]
- cocok dengan karakter apa pun yang tidak ada di seqAda tiga kemungkinan metode yang akan kita jelajahi di sini, dan ini termasuk:
Operator pencocokan pola yang diperluas yang berbeda tercantum di bawah ini, di mana: daftar pola adalah daftar yang berisi satu atau lebih nama file, dipisahkan menggunakan |
karakter:
*(daftar pola)
– cocok dengan nol atau lebih kemunculan dari pola yang ditentukan? (daftar pola)
– cocok dengan nol atau satu kemunculan dari pola yang ditentukan@(daftar-pola)
- cocok dengan salah satu pola yang ditentukan!(daftar-pola)
– cocok dengan apa pun kecuali salah satu pola yang diberikanUntuk menggunakannya, aktifkan extglob opsi shell sebagai berikut:
# shopt -s extglob.
1. Untuk menghapus semua file dalam direktori kecuali nama file, ketik perintah di bawah ini:
$rm -v !("nama file")
2. Untuk menghapus semua file kecuali nama file1 dan nama file2:
$rm -v !("namafile1"|"namafile2")
3. Contoh di bawah ini menunjukkan cara menghapus semua file selain semua .zip
file secara interaktif:
$ rm -i !(*.zip)
4. Selanjutnya, Anda dapat menghapus semua file dalam direktori selain dari semua .zip
dan .odt
file sebagai berikut, sambil menampilkan apa yang sedang dilakukan:
$ rm -v !(*.zip|*.odt)
Setelah Anda memiliki semua perintah yang diperlukan, matikan extglob opsi shell seperti ini:
$ shopt -u extglob.
Dengan metode ini, kita bisa gunakan perintah find secara eksklusif dengan pilihan yang sesuai atau dalam hubungannya dengan xargs perintah dengan menggunakan pipa seperti dalam bentuk di bawah ini:
$ find /directory/ -type f -not -name 'PATTERN' -delete. $ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm {} $ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I {} rm [opsi] {}
5. Perintah berikut akan menghapus semua file selain dari .gz
file di direktori saat ini:
$ temukan. -type f -not -name '*.gz'-delete.
6. Menggunakan sebuah pipa dan xargs, Anda dapat memodifikasi kasus di atas sebagai berikut:
$ temukan. -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}
7. Mari kita lihat satu contoh tambahan, perintah di bawah ini akan menghapus semua file kecuali .gz
, .odt
, dan .jpg
file di direktori saat ini:
$ temukan. -type f -not \(-name '*gz' -atau -name '*odt' -or -name '*.jpg' \) -delete.
Namun pendekatan terakhir ini, hanya berfungsi dengan bash. Di sini, GLOBIGNORE variabel menyimpan daftar pola yang dipisahkan titik dua (nama file) untuk diabaikan oleh ekspansi nama jalur.
Disarankan Baca:12 Contoh Praktis yang Berguna tentang Perintah Grep di Linux
Untuk menggunakan metode ini, pindah ke direktori yang ingin Anda bersihkan, lalu atur GLOBIGNORE variabel sebagai berikut:
$cd tes. $ GLOBIGNORE=*.odt:*.iso:*.txt.
Dalam hal ini, semua file selain .odt
, .iso
, dan .txt
file dengan dihapus dari direktori saat ini.
Sekarang jalankan perintah untuk membersihkan direktori:
$rm -v *
Setelah itu, matikan GLOBIGNORE variabel:
$ hapus GLOBIGNORE.
Catatan: Untuk memahami arti dari flag yang digunakan dalam perintah di atas, lihat halaman manual dari setiap perintah yang telah kita gunakan dalam berbagai ilustrasi.
Itu saja! Jika Anda memiliki teknik baris perintah lain untuk tujuan yang sama, jangan lupa untuk berbagi dengan kami melalui bagian umpan balik kami di bawah ini.