Terkadang Anda membutuhkan hapus hampir semua file dari direktori, tetapi Anda ingin menyimpan salah satu atau beberapa di antaranya. Jika jumlahnya banyak, pergi satu per satu adalah tugas yang membosankan. Ini bukan pilihan terbaik, ada cara untuk membuat pekerjaan di Linux lebih mudah dan Anda dapat menghilangkan semua yang Anda butuhkan sekaligus.
Misalnya, Anda mungkin ingin menghapus hanya yang dimulai dengan nama tertentu, atau yang memiliki ekstensi tertentu, dan seterusnya. Semua itu mungkinFaktanya, di kesempatan lain saya telah menunjukkan tutorial serupa di LxA. Di sini Anda dapat mengikuti tutorial langkah demi langkah dan dengan cara sederhana untuk dapat menghapus semua file yang Anda inginkan, kecuali yang ingin Anda simpan.
Dan yang terbaik adalah itu Anda tidak perlu menginstal program apa pun, itu dapat dilakukan dengan mudah dengan perintah seperti rm dan temukan. Artinya, program yang sudah diinstal sebelumnya di distro Linux apa pun. Dan tentu saja, metode ini akan didasarkan pada menemukan pola dan menggunakan kecocokan tersebut untuk menghapus hanya apa yang Anda inginkan.
Nah, untuk bisa menghilangkannya di sana beberapa alternatif, Apakah mereka…
Hapus file dari direktori dengan rm
Nah, untuk menggunakan file perintah rm Untuk menghilangkan apa yang Anda rasakan, Anda harus mengetahui sebelum beberapa cara untuk mengidentifikasi pola:
- * (daftar pola) - mencocokkan nol atau lebih kemunculan dari pola yang ditentukan
- ? (daftar pola) - cocok dengan nol atau satu kemunculan dari pola yang ditentukan
- + (daftar pola) - cocok dengan satu atau lebih 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 diberikan
untuk aktifkan extglob Untuk menggunakannya, Anda harus menjalankan perintah berikut terlebih dahulu:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Sekarang Anda dapat menggunakan rm untuk menghapus apa pun yang Anda inginkan. Sebagai contoh, hapus semua file dari direktori kecuali yang cocok dengan namanya «Lxa»:
rm -v !("lxa")
Anda juga bisa menentukan dua atau lebih nama yang tidak ingin Anda hapus. Misalnya, untuk menghindari penghapusan "lxa" dan "desdelinux":
rm -v !("lxa"|"desdelinux")
Anda dapat menghapus semua file, dikurangi ekstensi .mp3. Sebagai contoh:
rm -v !(*.mp3)
Pada akhirnya, Anda dapat kembali ke nonaktifkan extglob:
shopt -u extglob
Hapus file dari direktori dengan find
Alternatif lain untuk rm adalah gunakan find untuk menghapus apa pun yang Anda suka. Anda dapat menggunakan pipa dan xargs dengan rm, atau gunakan opsi -delete untuk menemukan. Artinya, sintaks generiknya adalah:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Misalnya, bayangkan Anda ingin hapus semua file dari direktori kecuali yang berekstensi .jpg, Anda dapat menggunakan salah satu dari dua perintah ini, karena keduanya mendapatkan hasil yang sama:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Sebaliknya, jika Anda mau tambahkan beberapa pola tambahan, Anda juga bisa. Misalnya, Anda tidak ingin menghapus .pdf atau .odt dari direktori:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Tentu saja, Anda bisa melakukan hal yang sama dengan | dan xargs seperti pada contoh sebelumnya. Ngomong-ngomong, kami telah menggunakan -tidak menyangkal, tetapi Anda dapat menghapusnya untuk membuatnya positif, yaitu menghapus pola yang cocok dan tidak mengecualikannya.
Hapus file dari direktori menggunakan variabel GLOBIGNORE
Akhirnya, ada Alternatif lain untuk menemukan dan rm, dan itu menggunakan variabel lingkungan untuk menunjuk ke file yang ingin Anda hapus atau kecualikan. Misalnya, bayangkan Anda ingin menghapus semua file dalam direktori bernama Download, menyimpan file .pdf, .mp3 dan .mp4. Jika demikian, Anda dapat melakukan hal berikut:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE