Jak odstranit soubory a adresáře v terminálu Linux

rm A   rmdir příkazy mazat soubory a adresáře v systému Linux, MacOS a jiných Unix-like operační systémy. Jsou podobné příkazům del a   deltree ve Windows a DOS. Tyto příkazy jsou velmi silné a mají několik možností.

Je důležité si uvědomit, že soubory a adresáře odstraněny pomocí rma rmdirnebudou přesunuty do koše. Okamžitě jsou z vašeho počítače odstraněny. Pokud omylem odstraníte soubory pomocí těchto příkazů, budete je moci obnovit pouze ze zálohy.

Jak odebrat soubory pomocí rm

Nejjednodušším případem je odstranění jednoho souboru z aktuálního adresáře. Zadejte rmpříkaz, mezeru a název souboru, který chcete odstranit.

rm soubor_1.txt

Pokud soubor není v aktuálním pracovním adresáři, uveďte cestu k umístění souboru.

rm ./path/to/the/file/file_1.txt

Můžete předat více než jeden název souboru rm. Tímto způsobem odstraníte všechny zadané soubory.

rm soubor_2.txt soubor_3.txt

Zástupné znaky lze použít k výběru skupin souborů, které mají být odstraněny. *Představuje více znaků a ?představuje jeden znak. Tento příkaz by odstranil všechny obrazové soubory png v aktuálním pracovním adresáři.

rm * .png

Tento příkaz by odstranil všechny soubory, které mají příponu jednoho znaku. To by například odstranilo File.1 a File.2, ale ne File.12.

rm *.?

Pokud je soubor chráněn proti zápisu, budete před odstraněním souboru vyzváni. Musíte odpovědět pomocí ynebo na stisknout „Enter“.

Chcete-li snížit riziko používání rmzástupných znaků, použijte možnost -i(interaktivní). To vyžaduje potvrzení odstranění každého souboru.

rm -i * .dat

Možnost -f (síla) je opakem interaktivní. Nezobrazí výzvu k potvrzení, i když jsou soubory chráněny proti zápisu.

rm -f název souboru

Jak odebrat adresáře pomocí rm

Chcete-li odstranit prázdný adresář, použijte volbu -d (adresář). Zástupné znaky ( *a ?) můžete v názvech adresářů používat stejně jako u názvů souborů.

rm -d adresář

Poskytnutím více než jednoho názvu adresáře odstraníte všechny zadané prázdné adresáře.

rm -d adresář1 adresář2 / cesta / do / adresář3

Chcete-li odstranit adresáře, které nejsou prázdné, použijte možnost -r(rekurzivní). Aby bylo jasno, odstraní se adresáře a všechny soubory a podadresáře v nich obsažené.

rm -r adresář1 adresář2 adresář3

Pokud je adresář nebo soubor chráněn proti zápisu, budete vyzváni k potvrzení odstranění. Chcete-li odstranit adresáře, které nejsou prázdné, a potlačit tyto výzvy, použijte možnosti -r(rekurzivní) a -f(vynutit) společně.

rm -rf adresář

Zde je nutná péče. Udělání chyby rm -rfpříkazem může způsobit ztrátu dat nebo poruchu systému. Je to nebezpečné a opatrnost je nejlepší politika. Chcete-li porozumět struktuře adresářů a souborům, které budou rm -rfpříkazem odstraněny , použijte treepříkaz.

Slouží  apt-get k instalaci tohoto balíčku do vašeho systému, pokud používáte Ubuntu nebo jinou distribuci založenou na Debianu. V jiných distribucích Linuxu místo toho použijte nástroj pro správu balíků vaší distribuce Linuxu.

sudo apt-get instalační strom

Spuštěním treepříkazu vytvoříte snadno pochopitelný diagram adresářové struktury a souborů pod adresářem, ze kterého je spuštěn.

strom

Můžete také zadat cestu k treepříkazu a způsobit tak spuštění stromu z jiného adresáře v systému souborů.

stromová cesta / do / adresáře

rmPříkaz má také --one-file-system, --no-preserve-root, --preserve-rootmožnosti, ale ty, které jsou doporučeny pouze pro pokročilé uživatele. Pokud dojde k chybě, můžete omylem smazat všechny systémové soubory. Další informace najdete na stránce příručky k příkazu.

Jak odebrat adresáře pomocí rmdir

Existuje další příkaz nazvaný rmdir, který můžete použít k odstranění adresářů. Rozdíl mezi rma rmdirje v tom, že rmdirlze odstranit pouze prázdné adresáře. Nikdy nebude mazat soubory.

Nejjednodušším případem je odstranění jednoho prázdného adresáře. Stejně jako v rmpřípadě můžete předat více názvů adresářů rmdirnebo cestu k adresáři.

Odstraňte jeden adresář v aktuálním adresáři předáním jeho názvu rmdir:

adresář rmdir

Odstraňte více adresářů předáním seznamu jmen   rmdir:

rmdir adresář1 adresář2 adresář3

Odstraňte adresář, který není v aktuálním adresáři, zadáním úplné cesty k tomuto adresáři:

rmdir / cesta / do / adresáře

Pokud se pokusíte odstranit složku, která není prázdná, rmdirzobrazí se chybová zpráva. V následujícím příkladu rmdirúspěšně a bezobslužně odstraní clientsadresář, ale odmítne jej odstranit, projectsprotože obsahuje soubory. projectsAdresář je ponechána přesně tak, jak to bylo a soubory v něm jsou nedotčeny.

Když se rmdirzobrazí chyba „Adresář není prázdný“, přestane zpracovávat adresáře, které mu byly předány na příkazovém řádku. Pokud jste jej požádali o smazání čtyř adresářů a první měl v sobě soubory, zobrazí rmdirse vám chybová zpráva a nic dalšího neděláte. Můžete ji vynutit, aby tyto chyby ignorovala pomocí --ignore-fail-on-non-emptymožnosti, aby byly zpracovány další adresáře.

V následujícím příkladu byly předány dvě složky rmdir, to jsou work/reportsa work/quotes. Tato --ignore-fail-on-non-emptymožnost byla zahrnuta do příkazu. work/reportsSložka obsahuje soubory v něm, takže rmdirjej nelze odstranit. Tyto --ignore-fail-on-non-emptyvolba síly rmdirchybu ignorovat a přejít do další složky, které potřebuje ke zpracování, což je work/quotes. Toto je prázdná složka a rmdirodstraní ji.

Tento příkaz byl použit.

rmdir --ignore-fail-on-non-empty work / reports / work / quotes

Možnost -p (rodiče) můžete použít  k odstranění adresáře a také k odstranění jeho nadřazených adresářů. Tento trik funguje, protože rmdirzačíná cílovým adresářem a poté se vrací zpět k rodiči. Tento adresář by nyní měl být prázdný, aby jej bylo možné odstranit rmdir, a proces se opakuje, aby se vrátil zpět na cestu, která byla poskytnuta rmdir.

V následujícím příkladu je předán příkaz rmdir:

rmdir -p práce / faktury

Jak invoicesa workadresáře jsou odstraněny, jak je požadováno.

Ať už používáte Bash nebo jakýkoli jiný shell, Linux poskytuje flexibilní a výkonné příkazy pro mazání adresářů a souborů přímo z příkazového řádku terminálu. Někteří lidé dávají přednost pracovnímu postupu, který se točí kolem terminálu. Ostatní nemusí mít na výběr. Mohou pracovat na serverech bez nainstalovaného grafického uživatelského rozhraní nebo na vzdálené relaci v bezhlavém systému, jako je Raspberry Pi. Tyto příkazy jsou ideální pro tuto skupinu lidí.

Ale ať už dáváte přednost jakémukoli pracovnímu postupu, tyto příkazy se velmi dobře hodí k zahrnutí do skriptů prostředí. Pokud je skript spuštěn cronúlohou, může pomoci automatizovat rutinní úklidové úlohy, jako je vyčištění nežádoucích souborů protokolu. Pokud prozkoumáte tento případ použití, nezapomeňte na sílu těchto příkazů, vše pečlivě otestujte a vždy udržujte nedávnou zálohu.