Cara menghapus semua kecuali satu fail dalam direktori

padamkan fail Linux

Kadang kala anda memerlukan hapus hampir semua fail dari direktori, tetapi anda mahu menyimpan satu atau beberapa daripadanya. Apabila terdapat sebilangan besar dari mereka, pergi satu demi satu adalah tugas yang membosankan. Ini bukan pilihan terbaik, ada cara untuk menjadikan kerja di Linux menjadi lebih mudah dan anda dapat menghapuskan semua yang anda perlukan sekaligus.

Sebagai contoh, anda mungkin mahu membuang hanya yang bermula dengan nama tertentu, atau yang mempunyai peluasan tertentu, dan sebagainya. Semua itu mungkinSebenarnya, pada kesempatan lain saya telah menunjukkan tutorial serupa di LxA. Di sini anda dapat mengikuti tutorial langkah demi langkah dan dengan cara mudah untuk dapat menghapus semua fail yang anda mahukan, kecuali yang anda mahu simpan.

Dan yang terbaik ialah anda tidak perlu memasang program apa pun, ia dapat dilakukan dengan mudah dengan perintah seperti rm dan cari. Iaitu, program yang sudah diprapasang di mana-mana distro Linux. Dan tentu kaedahnya akan berdasarkan pada mencari corak dan menggunakan padanan tersebut untuk membuang hanya yang anda mahukan.

Baiklah, untuk menghilangkan di sana beberapa alternatif, Apakah mereka…

Keluarkan fail dari direktori dengan rm

Baiklah, untuk menggunakan perintah rm Untuk menghilangkan apa yang anda rasa, anda mesti mengetahui beberapa cara untuk mengenal pasti corak terlebih dahulu:

  • * (senarai corak) - sepadan dengan sifar atau lebih banyak kejadian corak yang ditentukan
  • ? (senarai corak) - sepadan dengan sifar atau satu kejadian corak yang ditentukan
  • + (senarai corak) - sesuai dengan satu atau lebih kejadian corak yang ditentukan
  • @ (senarai corak) - sesuai dengan salah satu corak yang ditentukan
  • ! (senarai corak) - sesuai dengan apa sahaja kecuali salah satu corak yang diberikan

kepada aktifkan extglob Untuk menggunakannya, anda harus terlebih dahulu melaksanakan perintah berikut:

<br data-mce-bogus="1">

shopt -s extglob<br data-mce-bogus="1">

mata! Saya tidak menentukannya, tetapi diandaikan bahawa anda mempunyai izin untuk melakukan operasi ini, dan bahawa anda berada di dalam direktori tersebut ketika anda menjalankan perintah rm. Berhati-hatilah dengan ini, kerana jika anda menjalankannya di jalan lain, anda mungkin akhirnya menghapus fail yang tidak anda mahukan. Maksudnya, sebelum menjalankan perintah ini, pastikan anda telah memasukkan direktori yang anda inginkan dengan cd.

Sekarang anda boleh menggunakan rm untuk membuang apa sahaja yang anda mahukan. Sebagai contoh, hapus semua fail dari direktori kecuali yang sesuai dengan namanya «Lxa»:

rm -v !("lxa")

Anda juga boleh menentukan dua atau lebih nama yang tidak mahu dipadamkan. Contohnya, untuk mengelakkan mengeluarkan "lxa" dan "desdelinux":

 rm -v !("lxa"|"desdelinux") 

Anda boleh memadam semua fail, tolak mereka yang mempunyai lanjutan .mp3. Sebagai contoh:

 rm -v !(*.mp3) 

Pada akhirnya, anda boleh kembali ke lumpuhkan extglob:

 shopt -u extglob 

Keluarkan fail dari direktori dengan cari

Alternatif lain untuk rm adalah gunakan mencari untuk menghilangkan perasaan anda. Anda boleh menggunakan paip dan xarg dengan rm, atau menggunakan pilihan -delete untuk mencari. Artinya, sintaks generik adalah:

find /directory/ -type f -not -name 'PATRÓN' -delete
find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}

Contohnya, bayangkan anda mahukan hapus semua fail dari direktori kecuali yang mempunyai pelanjutan .jpg, anda boleh menggunakan salah satu dari dua arahan ini, kerana keduanya mendapat 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 mahu tambah beberapa corak tambahan, anda juga boleh. Sebagai contoh, bayangkan bahawa anda tidak mahu mengeluarkan sama ada .pdf atau .odt dari direktori:

find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete

Sudah tentu, anda boleh melakukan perkara yang sama dengan | dan xargs seperti contoh sebelumnya. By the way, kami telah menggunakan -tidak dinafikan, tetapi anda boleh membuangnya untuk menjadikannya positif, iaitu untuk membuang corak yang sepadan dan tidak mengecualikannya.

Padamkan fail dari direktori menggunakan pemboleh ubah GLOBIGNORE

Akhirnya, ada Alternatif lain untuk mencari dan rm, dan ia menggunakan pemboleh ubah persekitaran untuk menunjuk ke fail yang ingin anda alih keluar atau kecualikan. Sebagai contoh, bayangkan bahawa anda ingin menghapus semua fail dalam direktori yang dipanggil Muat turun, menyimpan fail .pdf, .mp3 dan .mp4. Sekiranya demikian, anda boleh melakukan perkara berikut:

cd Descargas
GLOBIGNORE=*.pdf:*.mp4:.*mp3
rm -v *
unset GLOBIGNORE


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.