rm (Unix)

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

rm
Rm --help Command - Unix.png
Typ softwarustandardní UNIXová utilita či příkaz
Některá data mohou pocházet z datové položky.

PřepínačeEditovat

  • -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ávaEditovat

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ímavostEditovat

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.

ReferenceEditovat

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

Externí odkazyEditovat