Jak odstranit všechny soubory kromě jednoho v adresáři

smazat soubory Linux

Někdy potřebujete odebrat téměř všechny soubory z adresáře, ale chcete si jednu nebo některé ponechat. Když je jich velké množství, jít po jednom je zdlouhavý úkol. Není to nejlepší volba, existují způsoby, jak si práci v Linuxu výrazně usnadnit a že můžete eliminovat všechny, které potřebujete najednou.

Můžete například chtít odebrat pouze ty, které začínají určitým názvem, nebo ty, které mají konkrétní příponu atd. Všechno je možnéVe skutečnosti jsem již při jiných příležitostech ukázal podobné výukové programy v LxA. Zde můžete postupovat krok za krokem a jednoduchým způsobem, abyste mohli odstranit všechny soubory, které chcete, kromě toho, co chcete uložit.

A nejlepší na tom je nebudete muset instalovat žádný program, lze to snadno provést pomocí příkazů jako rm and find. To znamená, že programy, které jsou již předinstalovány v jakékoli distribuci systému Linux. A samozřejmě bude metoda založena na hledání vzorů a použití těchto shod k odstranění pouze toho, co chcete.

No, aby to tam bylo odstraněno několik alternativ, Co jsou…

Odeberte soubory z adresáře pomocí rm

Aby bylo možné použít rm příkaz Abyste vyloučili, na co máte chuť, musíte nejprve znát některé způsoby, jak identifikovat vzorce:

  • * (seznam vzorů) - odpovídá nule nebo více výskytům zadaných vzorů
  • ? (seznam vzorů) - odpovídá nule nebo jednomu výskytu specifikovaných vzorů
  • + (seznam vzorů) - odpovídá jednomu nebo více výskytům zadaných vzorů
  • @ (seznam vzorů) - odpovídá jednomu ze zadaných vzorů
  • ! (seznam vzorů) - odpovídá cokoli kromě jednoho z daných vzorů

na aktivovat extglob Abyste je mohli použít, musíte nejprve provést následující příkaz:

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

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

oko! Nezadávám to, ale předpokládá se, že máte oprávnění k provádění těchto operací a že jste v tomto adresáři, když provádíte příkaz rm. S tím buďte opatrní, protože pokud to spustíte jinou cestou, můžete nakonec odstranit soubory, které nechcete. To znamená, že před provedením těchto příkazů se ujistěte, že jste zadali požadovaný adresář pomocí cd.

Nyní můžete pomocí rm odstranit cokoli chcete. Například, odstranit všechny soubory z adresáře kromě těch, které odpovídají názvu «Lxa»:

rm -v !("lxa")

Můžete také určit dvě nebo více jmen, která nechcete smazat. Například abyste se vyhnuli odstranění „lxa“ a „desdelinux“:

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

Můžete smazat všechny soubory, minus ti s prodloužením .mp3. Například:

 rm -v !(*.mp3) 

Na konci se můžete vrátit zpět na deaktivovat extglob:

 shopt -u extglob 

Odeberte soubory z adresáře pomocí funkce find

Další alternativou k rm je použijte find k odstranění toho, na co máte chuť. Můžete použít rouru a xargs s rm, nebo použít volbu -delete k nalezení. To znamená, že obecná syntaxe by byla:

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

Představte si například, že chcete odstranit všechny soubory z adresáře kromě těch s příponou .jpg, můžete použít jeden z těchto dvou příkazů, protože oba mají stejný výsledek:

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

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

Místo toho, pokud jste chtěli přidat nějaký další vzor, mohl bys taky. Představte si například, že nechcete odstranit soubor .pdf nebo .odt z adresáře:

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

Totéž byste samozřejmě mohli udělat s | a xargs jako v předchozím příkladu. Mimochodem, použili jsme - nelze popřít, ale můžete to odstranit, aby to bylo pozitivní, to znamená, že odstraníte odpovídající vzory a nevyloučíte je.

Odstraňte soubory z adresáře pomocí proměnné GLOBIGNORE

Konečně je Další alternativa najít a rm, a to pomocí proměnné prostředí ukazuje na soubory, které chcete odebrat nebo vyloučit. Představte si například, že chcete odstranit všechny soubory v adresáři s názvem Stahování a uložit soubory .pdf, .mp3 a .mp4. V takovém případě můžete provést následující:

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


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.