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.