Ako odstrániť všetky súbory okrem jedného v adresári

odstrániť súbory systému Linux

Niekedy potrebujete odstrániť takmer všetky súbory z adresára, ale chcete si jednu alebo niektoré ponechať. Ak je ich veľké množstvo, ísť po jednom je únavná úloha. Nie je to najlepšia voľba, existujú spôsoby, ako si prácu v Linuxe výrazne uľahčiť a že môžete vylúčiť všetky, ktoré práve potrebujete.

Môžete napríklad odstrániť iba tie, ktoré sa začínajú určitým menom, alebo tie, ktoré majú konkrétnu príponu atď. Všetko je možnéV skutočnosti som už pri iných príležitostiach ukázal podobné tutoriály v LxA. Tu môžete postupovať krok za krokom a jednoduchým spôsobom, aby ste mohli vymazať všetky súbory, ktoré chcete, s výnimkou tých, ktoré chcete uložiť.

A najlepšie je, že nebudete musieť inštalovať žiadny program, dá sa to ľahko urobiť príkazmi ako rm and find. To znamená, že programy, ktoré sú už predinštalované na akomkoľvek distro Linuxu. Metóda bude samozrejme založená na hľadaní vzorov a použití týchto zhôd na odstránenie iba toho, čo chcete.

No, aby sa tam vylúčilo niekoľko alternatív, Čo sú zač…

Odstráňte súbory z adresára pomocou rm

Aby bolo možné použiť príkaz rm Aby ste eliminovali to, na čo máte chuť, musíte poznať niekoľko spôsobov, ako identifikovať vzorce:

  • * (zoznam vzorov) - zodpovedá nule alebo viacerým výskytom zadaných vzorov
  • ? (zoznam vzorov) - zodpovedá nule alebo jednému výskytu špecifikovaných vzorov
  • + (zoznam vzorov) - zhoduje sa s jedným alebo viacerými výskytmi zadaných vzorov
  • @ (zoznam vzorov) - zodpovedá jednému zo zadaných vzorov
  • ! (zoznam vzorov) - zhoduje sa s čímkoľvek okrem jedného z daných vzorov

na aktivovať extglob Aby ste ich mohli použiť, musíte najskôr vykonať nasledujúci príkaz:

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

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

oko! Nešpecifikujem to, ale predpokladá sa, že máte oprávnenie na vykonávanie týchto operácií a že sa nachádzate v tomto adresári, keď vykonáte príkaz rm. Pri tomto buďte opatrní, pretože ak to spustíte inou cestou, môžete nakoniec vymazať súbory, ktoré nechcete. To znamená, že pred vykonaním týchto príkazov sa uistite, že ste do adresára cd vstúpili do požadovaného adresára.

Teraz môžete pomocou rm odstrániť všetko, čo chcete. Napríklad, odstráni všetky súbory z adresára okrem tých, ktoré zodpovedajú názvu «Lxa»:

rm -v !("lxa")

Môžete tiež určiť dve alebo viac mien, ktoré nechcete vymazať. Napríklad aby ste sa vyhli odstráneniu súborov „lxa“ a „desdelinux“:

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

Môžete vymazať všetky súbory, mínus tie s predĺžením .mp3. Napríklad:

 rm -v !(*.mp3) 

Na konci sa môžete vrátiť späť na zakázať extglob:

 shopt -u extglob 

Odstráňte súbory z adresára pomocou funkcie find

Ďalšou alternatívou k rm je použite find na odstránenie všetkého, na čo máte chuť. Môžete použiť pipe a xargs s rm, alebo vyhľadať pomocou voľby -delete. To znamená, že všeobecná syntax by bola:

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

Napríklad si predstavte, že chcete odstráni všetky súbory v adresári okrem tých, ktoré majú príponu .jpg, môžete použiť jeden z týchto dvoch príkazov, pretože oba majú rovnaký výsledok:

find . -type f -not -name '*.jpg'-delete

find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}

Namiesto toho, ak ste chceli pridať nejaký vzor navyše, mohol by si tiež. Predpokladajme napríklad, že nechcete odstrániť súbor .pdf alebo .odt z adresára:

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

To isté môžete samozrejme urobiť s | a xargs ako v predchádzajúcom príklade. Mimochodom, použili sme - nemožno poprieť, ale môžete to odstrániť, aby ste dosiahli pozitivitu, to znamená, že odstránite zodpovedajúce vzory a nevylúčite ich.

Odstráňte súbory z adresára pomocou premennej GLOBIGNORE

Konečne je tu Ďalšia alternatíva na vyhľadanie a rm a pomocou premennej prostredia ukazuje na súbory, ktoré chcete odstrániť alebo vylúčiť. Predstavte si napríklad, že chcete odstrániť všetky súbory v adresári s názvom Stiahnutie a uložiť súbory .pdf, .mp3 a .mp4. V takom prípade môžete:

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


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.