V sobotu 2. listopadu proběhla mohutná oslava naší plnoletosti !!
Multimediaexpo.cz je již 18 let na českém internetu !!

rm (Unix)

Z Multimediaexpo.cz

rm (zkratka pro remove, tj. odstranit) je příkaz používaný v Unixu

Zápis

  • rm -f nedotazovat se před odstraněním souborů určených jen pro čtení, ignoruje neexistující soubory
  • rm -r rekurzivně odstraní soubory v adresáři
  • rm -i dotaz zda se má soubor nebo adresář odstranit
  • rm -v popisuje co právě dělá
  • rm -rf (rm -rf /, 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 zůstanou nedotčená.

Práva

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 na jeho odstranění. 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é). Toto 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

Společnost Sun uvedla ochranu 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 výchozí.