GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit (smazat) adresář v Linuxu

Existuje několik různých způsobů, jak odstranit adresáře v systémech Linux. Pokud používáte správce souborů na ploše, jako je Gnome's Files nebo KDE's Dolphin, můžete mazat soubory a adresáře pomocí grafického uživatelského rozhraní správce. Pokud však pracujete na bezhlavém serveru nebo chcete odstranit více adresářů najednou, nejlepší možností je odstranit adresáře (složky) z příkazového řádku.

V tomto článku vysvětlíme, jak odstranit adresáře v Linuxu pomocí rmdir , rm a find příkazy.

Než začnete #

Při odstraňování adresáře pomocí správce souborů na ploše se adresář ve skutečnosti přesune do koše a lze jej snadno obnovit.

Při odstraňování souborů nebo adresářů z příkazového řádku buďte zvlášť opatrní, protože jakmile je adresář odstraněn pomocí příkazů vysvětlených v tomto článku, nelze jej plně obnovit.

Na většině souborových systémů Linux vyžaduje odstranění adresáře oprávnění k zápisu do adresáře a jeho obsahu. V opačném případě se zobrazí chyba „Operace není povolena“.

Názvy adresářů s mezerou musí být escapovány zpětným lomítkem (/ ).

Odebrání adresářů pomocí rmdir #

rmdir je nástroj příkazového řádku pro mazání prázdných adresářů. Je to užitečné, když chcete smazat adresář pouze v případě, že je prázdný, aniž byste museli kontrolovat, zda je adresář prázdný nebo ne.

Chcete-li odstranit adresář pomocí rmdir zadejte příkaz následovaný názvem adresáře, který chcete odstranit. Chcete-li například odstranit adresář s názvem dir1 byste napsali:

rmdir dir1

Pokud adresář není prázdný, zobrazí se následující chyba:

rmdir: failed to remove 'dir1': No such file or directory

V tomto případě budete muset použít rm nebo ručně odstraňte obsah adresáře, než jej budete moci smazat.

Odebrání adresářů pomocí rm #

rm je nástroj příkazového řádku pro mazání souborů a adresářů. Na rozdíl od rmdir rm příkaz může odstranit prázdné i neprázdné adresáře.

Ve výchozím nastavení, při použití bez jakékoli možnosti rm neodstraní adresáře. Chcete-li smazat prázdný adresář, použijte -d (--dir ) a k odstranění neprázdného adresáře a veškerého jeho obsahu použijte -r (--recursive nebo -R ).

Chcete-li například odstranit adresář s názvem dir1 spolu s celým jeho obsahem byste napsali:

rm -r dir1

Pokud je adresář nebo soubor v adresáři chráněn proti zápisu, budete vyzváni k potvrzení odstranění. Chcete-li odstranit adresář bez vyzvání, použijte -f možnost:

rm -rf dir1

Chcete-li odstranit více adresářů najednou, vyvolejte rm příkaz, za kterým následují názvy adresářů oddělené mezerou. Níže uvedený příkaz odstraní všechny uvedené adresáře a jejich obsah:

rm -r dir1 dir2 dir3

-i volba říká rm zobrazí výzvu k potvrzení odstranění každého podadresáře a souboru. Pokud adresář obsahuje mnoho souborů, může to být trochu nepříjemné, takže můžete zvážit použití -I možnost, která vás vyzve pouze jednou před pokračováním v mazání.

rm -rI dir1

Chcete-li odstranit adresář, zadejte y a stiskněte Enter .

rm: remove 1 argument recursively? y

Můžete také použít běžná rozšíření k přiřazení a odstranění více adresářů. Chcete-li například odstranit všechny adresáře první úrovně v aktuálním adresáři, který končí _bak , použili byste následující příkaz:

rm -r *_bak

Používání pravidelných rozšíření při odstraňování adresářů může být riskantní. Doporučuje se nejprve uvést adresáře s ls takže před spuštěním rm uvidíte, jaké adresáře budou smazány příkaz.

Odebrání adresářů pomocí find #

find je nástroj příkazového řádku, který vám umožňuje vyhledávat soubory a adresáře na základě daného výrazu a provádět akci s každým odpovídajícím souborem nebo adresářem.

Nejběžnějším scénářem je použití find příkaz k odstranění adresářů na základě vzoru. Chcete-li například odstranit všechny adresáře, které končí _cache v aktuálním pracovním adresáři byste spustili:

find . -type d -name '*_cache' -exec rm -r {} +

Pojďme analyzovat výše uvedený příkaz:

  • /dir - rekurzivně vyhledávat v aktuálním pracovním adresáři (. ).
  • -type d - omezuje vyhledávání na adresáře.
  • -name '*_cache' - prohledávat pouze adresáře, které končí _cache
  • -exec - provede externí příkaz s volitelnými argumenty, v tomto případě to je rm -r .
  • {} + - připojí nalezené soubory na konec rm příkaz.

Odstranění všech prázdných adresářů #

Chcete-li odstranit všechny prázdné adresáře ve stromu adresářů, spusťte:

find /dir -type d -empty -delete

Zde je vysvětlení použitých možností:

  • /dir - rekurzivně hledat v /dir adresář.
  • -type d - omezuje vyhledávání na adresáře.
  • -empty - omezuje vyhledávání pouze na prázdné adresáře.
  • -delete - smaže všechny nalezené prázdné adresáře v podstromu. -delete může odstranit pouze prázdné adresáře.

Použijte -delete možnost s extrémní opatrností. Příkazový řádek find je vyhodnocen jako výraz, a pokud přidáte -delete Pokud zvolíte možnost první, příkaz odstraní vše pod vámi zadanými počátečními body.

Vždy nejprve otestujte příkaz bez -delete a použijte -delete jako poslední možnost.

/bin/rm:Seznam argumentů je příliš dlouhý #

Tato chybová zpráva se zobrazí, když použijete rm příkaz k odstranění adresáře, který obsahuje velké množství souborů. K tomu dochází, protože počet souborů je větší než systémový limit velikosti argumentu příkazového řádku.

Existuje několik různých řešení tohoto problému. Můžete například cd do adresáře a ručně nebo pomocí smyčky odstranit podadresáře jeden po druhém.

Nejjednodušším řešením je nejprve smazat všechny soubory v adresáři pomocí find a poté smažte adresář:

find /dir -type f -delete && rm -r /dir

Závěr č.

Pomocí rm a find můžete rychle a efektivně odstranit adresáře na základě různých kritérií.

Odstranění adresářů je jednoduchý a snadný proces, ale musíte být opatrní, abyste nesmazali důležitá data.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Jak odstranit uživatelské účty pomocí domovského adresáře v systému Linux

  2. Jak vyhledávat a odstraňovat adresáře rekurzivně v systému Linux

  3. Jak přejmenovat adresář v Linuxu

  1. Jak odstranit adresář a složku v Linuxu?

  2. 5 Praktické příklady odstranění / odstranění adresáře v Linuxu

  3. Odstraňte pouze soubory v adresáři v adresářích linux NOT

  1. Jak odstranit (smazat) soubor nebo adresář v Linuxu

  2. Jak odebrat adresář v Linuxu

  3. Jak odstranit adresáře a soubory pomocí Linuxu