rm (Unix)

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

rm (zkratka pro remove, tj. odstranit) v informatice příkaz používaný v unixových systémech pro smazání souboru (nebo adresářového stromu).

Přepínače[editovat | editovat zdroj]

  • -f nedotazovat se před odstraněním souborů určených jen pro čtení, ignoruje neexistující soubory
  • -r rekurzivní odstranění souborů v adresáři
  • -i dotaz zda se má soubor nebo adresář odstranit
  • -v popisuje, co právě dělá

Zápis rm -rf / nebo rm -rf * se často vyskytuje v anekdotách o Unixu. V případě, že by tento příkaz byl zadán superuživatelem, způsobil by smazání všech dat na připojených discích s právem zápisu.

V případě, že použijeme rm na smazání symbolického odkazu, bude smazán pouze odkaz a data (resp. soubor) na který linka odkazovala, zůstanou nedotčená.

Práva[editovat | editovat zdroj]

Pro většinu systémových souborů platí, že pro jejich odstranění potřebujeme práva zápisu na jejich nadřazenou složku. Může být matoucí, že pro odstranění souboru nepotřebujeme přímo právo zápisu k souboru samotnému. Pro odstranění složky (rm -r) musíme obsah vymazat rekurzivně. Proto je nutné mít právo pro zápis i mazání adresáře (jestliže není prázdný) stejně tak je nutné mít tyto práva pro podsložky (neprázdné), což v některých případech vede ke zvláštní situaci, kdy nemůže být podsložka odstraněna proto, že uživatel nemá práva pro zápis. Tedy ani pro odstranění souborů v podsložce. Toto neplatí v případě, že je podsložka prázdná.

Jestliže je soubor v adresáři s nastaveným sticky bitem, poté je pro odstranění nutné, aby uživatel byl zároveň i majitelem.

Zajímavost[editovat | editovat zdroj]

Společnost Sun zavedla ochranu pro příkaz rm -rf / v operačním systému Solaris 10. Při pokusu o provedení příkazu systém oznámí, že odstranění není povoleno.

rm z projektu GNU odmítne vykonat příkaz rm -rf /, jestliže je spuštěno s parametrem --preserve-root, který je od GNU Core Utilities 6.4 implicitně nastaven.

V tomto článku byl použit překlad textu z článku rm na anglické Wikipedii.