Cara menghapus semua kecuali satu file di direktori

hapus file Linux

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">

mata! Saya tidak menentukannya, tetapi diasumsikan bahwa Anda memiliki izin untuk melakukan operasi ini, dan bahwa Anda berada di dalam direktori itu ketika Anda menjalankan perintah rm. Hati-hati dengan ini, karena jika Anda menjalankannya di jalur lain, Anda mungkin akan menghapus file yang tidak Anda inginkan. Artinya, sebelum menjalankan perintah tersebut, pastikan Anda telah masuk ke direktori yang Anda inginkan dengan cd.

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


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.