GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit soubory uvedené v jiném souboru v Linuxu

Pod distribucí operačního systému Linux jde všechno. Tato prostředí operačního systému s otevřeným zdrojovým kódem vás provedou horskou dráhou ve všem, co o operačních systémech potřebujete vědět.

Jedním z klíčových aspektů, který silně definuje potřebu a trvalou potřebu operačního systému, je správa souborů. Žádný operační systém nezvládá správu souborů lépe než Linux. Ať už chcete omezit, vytvořit nebo zvýšit zabezpečení vašeho systému a uživatelských souborů, Linux poskytuje nejlepší uživatelskou zkušenost a výkon.

Terminál Linux nebo rozhraní příkazového řádku je flexibilní prostředí pro manipulaci se soubory pomocí příkazů spojených s vytvářením, přejmenováním, přesouváním a mazáním souborů. Co kdybyste se naučili další vylepšení manipulace se soubory?

Tento článek nás provede mazáním souborů uvedených v jiném souboru v prostředí operačního systému Linux.

Praktický scénář

Pro referenci vytvoříme fiktivní strom adresářů. Zvažte následující stromovou strukturu adresářů:

$ tree

Z výše uvedeného snímku obrazovky TestDel je nadřazený adresář s absolutní cestou /home/dnyce/TestDel .

$ pwd

TestDel má čtyři další adresáře (docx_files , soubor_jpg , soubor_pdf a soubory xml ) uvnitř se naplní soubory různých formátů (docx, jpg, pdf a xml).

Nyní, pokud chceme některé z těchto souborů smazat, budeme muset nejprve vypsat jejich absolutní cestu v souboru. Vytvoříme textový soubor s názvem tobeDeleted.txt a přidejte cestu k některým z těchto souborů.

$ sudo nano tobeDeleted.txt

Nyní, když máme soubor, ze kterého budou uvedené soubory odstraněny, se nyní můžeme podívat na životaschopné metodiky, které zahájí a provedou jejich odstranění.

Metoda 1:Použití příkazu xargs

Pod xargs přístup, vstupy z stdin jsou čteny pomocí xargů příkaz a poté převeden na použití argumentů, které lze přiřadit k jiným příkazům.

Chcete-li odstranit soubory uvedené ve výše uvedeném souboru tobeDeleted.txt implementujeme a spustíme xargs příkaz následujícím způsobem. xargs příkaz by měl ukazovat na absolutní cestu souboru tobeDeleted.txt textový soubor.

$ xargs -I{} rm -r "{}" < /home/dnyce/tobeDeleted.txt 

Příkaz přečte absolutní cestu k uvedeným souborům a poté zkontroluje jejich skutečné umístění pro zahájení mazání.

Zástupný symbol "{}" cituje uvedené cesty názvů souborů pro rm -r příkaz k odstranění po -I nahradí řetězec dalším názvem souboru, který má být odstraněn.

Nyní můžeme pokračovat a spustit příkaz stromu, abychom se ujistili, že uvedené soubory byly skutečně smazány s následujícím výstupem příkazu cat jako referenčním bodem.

$ cat tobeDeleted.txt
$ tree /home/dnyce/TestDel

Jak můžete vidět, z původních 13 souborů nám zbývá 10.

Metoda 2:Použití příkazu sed

Kompaktní jednořádkový přístup sed nám snadno pomůže odstranit soubory uvedené v jiném souboru. Aktualizujte tobeDeleted.txt s novými účastníky.

$ sudo nano tobeDeleted.txt 

sed příkaz, který chcete použít k odstranění souborů zobrazených na snímku obrazovky výše, bude vypadat následovně:

$ sed 's/.*/rm -r "\0"/' /home/dnyce/tobeDeleted.txt

Zástupný symbol "\0" ukazuje na cestu k názvu souboru pro odstranění pomocí rm -r příkaz kde s zachází s cestami k souborům jako se samostatnými položkami v seznamu s různými příponami (.*) .

Jak jste si možná všimli, sed příkaz neprovede skutečné odstranění souboru za nás, ale spíše vygeneruje příslušné příkazy pro odstranění, které můžeme pohodlně provést.

Znovu spusťte strom pomocí příkazu cat zajistíte, že budou soubory odstraněny výstup jako referenční bod.

$ cat /home/dnyce/tobeDeleted.txt
$ tree /home/dnyce/TestDel

Podařilo se nám odstranit uvedené soubory.

Metoda 3:Použití příkazu awk

Znovu aktualizujte soubor tobeDeleted.txt soubor s novými účastníky.

$ sudo nano tobeDeleted.txt 

The awk příkaz k provedení je následující:

$ awk -v q='"' '$0 = "rm -r " q $0 q' /home/dnyce/tobeDeleted.txt

-v přiřadí proměnnou q se zástupnou hodnotou " a '$0 = "rm -r " q $0 q' vygeneruje výsledný příkaz pro smazání každého z uvedených souborů.

Jak bylo uvedeno, awk příkaz také neprovede skutečné odstranění uvedených souborů za nás, ale vygeneruje příkazy, které můžeme použít:

Spusťte strom příkaz ve vztahu k příkazu cat výstup pro potvrzení smazání souborů.

$ cat /home/dnyce/tobeDeleted.txt
$ tree /home/dnyce/TestDel

Úspěšně jste přidali novou dovednost do svých rutin správy souborů v Linuxu.


Linux
  1. Jak převést soubory do kódování UTF-8 v Linuxu

  2. Jak odstranit soubory a adresáře v Linuxu z příkazového řádku

  3. Jak zobrazit nebo změnit ACL v souborech Linux

  1. Jak odstranit soubor root Mails (Mailbox) v Linuxu

  2. Jak extrahovat soubory .gz a .tar.gz v Linuxu

  3. Jak odstranit soubory .fuse_hidden*?

  1. Jak přesunout soubor v Linuxu

  2. Jak používat Netcat k přenosu souborů v systému Linux

  3. Jak v Linuxu odstraníte soubory starší než konkrétní datum?