rm (Unix)

Z Wikipedie, otevřené encyklopedie
rm
Typ softwarustandardní UNIXová utilita či příkaz
Některá data mohou pocházet z datové položky.

rm (zkratka pro remove, tj. odstranit) je 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ý symlink odkazoval, 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.

rmprojektu 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.

Reference[editovat | editovat zdroj]

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

Externí odkazy[editovat | editovat zdroj]