GNU/Linux >> Znalost Linux >  >> Linux

Jak odebrat všechny soubory ve složce kromě jednoho konkrétního souboru v systému Linux

Řekněme, že máte ve složce více než 100 souborů. Chcete je odstranit všechny kromě jednoho nebo několika konkrétních souborů. jak bys to udělal? Můžete zkopírovat soubory, které si chcete ponechat, a uložit je na jiné místo a poté odstranit zbytek souborů nebo celou složku. Ale počkejte, znám nejjednodušší způsob, jak to udělat. Můžete odstranit všechny soubory ve starším souboru kromě jednoho konkrétního souboru nebo určitého typu souborů najednou pomocí jediného příkazu. Chcete vědět jak? Čtěte dál.

Odebrat všechny soubory ve složce kromě jednoho konkrétního souboru

Představme si následující příklad. Máme složku nazvanou 'test', která obsahuje 10 textových souborů.

$ ls test/

Ukázkový výstup:

file10.txt file2.txt file4.txt file6.txt file8.txt
file1.txt file3.txt file5.txt file7.txt file9.txt

Nyní chci smazat vše v této složce kromě file10.txt .

K tomu může být mnoho příkazů. Ale toto je pět příkazů, které znám.

Nejprve přejděte na test složka:

$ cd test/

A spusťte následující příkaz:

$ rm -f !(file10.txt)

Nebo použijte:

$ rm !(file10.txt)

Výše uvedený příkaz odstraní všechny soubory v testovací složce kromě file10.txt soubor.

Můžete také použít příkaz najít smazat vše kromě konkrétního. Následující příkaz smaže všechny soubory v aktuální složce (tedy v našem případě test) kromě souboru 10.txt.

$ find . ! -name file10.txt -delete

Jak vidíte ve výše uvedeném příkladu, testovací složka obsahuje stejný typ souborů, tj. soubory .txt. Co byste dělali, kdyby složka obsahovala jiný typ souborů, např. .mp3, .doc, .pdf atd.? Je také snadné ponechat určitý typ souborů ve složce a odstranit vše ostatní.

Řekněme, že naše testovací složka obsahuje tři soubory .txt, tři soubory .mp3, tři soubory .doc a jeden soubor .pdf.

$ ls test/

Ukázkový výstup:

total 0
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file10.pdf
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file1.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file2.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file3.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file4.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file5.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file6.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file7.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file8.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file9.doc

Jak vy ve výše uvedeném výstupu, mám ve složce test čtyři různé typy souborů (pdf, txt, mp3, doc). Chci si ponechat soubory, které mají .doc rozšíření a odstraňte vše ostatní. Zde je návod, jak to udělat:

$ cd test/
$ rm !(*.doc)

Nyní vypíšeme obsah souboru pomocí příkazu:

$ ls

Ukázkový výstup:

file7.doc  file8.doc  file9.doc

Výše uvedený příkaz smaže vše ve složce kromě souborů s příponou .doc .

Podobně si můžete ponechat dva nebo více konkrétních typů souborů a odstranit vše ostatní. Řekněme například, že následující příkaz zachová soubory, které obsahují .doc a .mp3 rozšíření.

$ rm !(*.doc|*.mp3)

Nyní uvidíte, že soubory mp3 a doc nejsou smazány.

$ ls

Ukázkový výstup:

file4.mp3  file5.mp3  file6.mp3  file7.doc  file8.doc  file9.doc
Stáhnout - Příručka zdarma:"GNU/Linux Basic"

Jedná se pouze o deset různých typů souborů. Stačí obrázek, máte stovky souborů. Bylo by těžší najít jednotlivé typy souborů a odstranit je ručně. Tento trik udělá práci během jedné nebo dvou sekund.

Při používání těchto příkazů buďte velmi opatrní. Před smazáním souborů dvakrát zkontrolujte cestu k adresáři, abyste předešli náhodnému smazání důležitých souborů.

Doporučené čtení:

  • Zabránění souborům a složkám před náhodným smazáním nebo úpravou v systému Linux
  • Snadný způsob ochrany souborů před náhodným smazáním v systému Linux

Snad to pomůže. Pokud považujete tuto příručku za užitečnou, sdílejte ji na svých sociálních a profesních sítích a podpořte nás.

Přijdou další dobré věci. Zůstaňte naladěni!

Na zdraví!


Linux
  1. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  2. Jak přidat čísla řádků do textových souborů v systému Linux

  3. Odebrat všechny soubory/adresáře kromě jednoho souboru?

  1. Jak najít všechny soubory vlastněné konkrétním uživatelem v Unixu/Linuxu?

  2. Jak gzipovat všechny nebo konkrétní soubory v Linuxu

  3. Jak odstranit všechny soubory začínající určitým řetězcem v Linuxu

  1. Jak odstranit všechny soubory kromě jednoho pojmenovaného souboru z konkrétní složky?

  2. Přesuňte všechny soubory kromě jednoho

  3. Jak v linuxu vidím du v GB místo MB?