Poruší rm -rf *.*
váš souborový systém, zatímco rm -rf /
to neudělá toto?
Komentáře
- Unix a Linux Stack Exchange jsou užitečné již více než 6 let a SuperUser totéž: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
Odpověď
Tady „není pro to nic zvláštního, rm -rf *.*
je příkaz se zástupným názvem souboru, rekurzivně odstraní všechny soubory v aktuálním adresáři, které obsahují v názvech tečku.
rm -rf /
způsobí chybu při pokusu o spuštění rm
v kořenovém adresáři. Toto je nařízeno POSIX :
Pokud […] operand reso lves do kořenového adresáře, rm napíše diagnostickou zprávu se standardní chybou a s takovými operandy nic nedělá.
V závislosti na na prostředí a jeho nastavení může *.*
odpovídat ..
nadřazenému adresáři, ale také /
, pokus o odstranění je také chybou.
Ani jeden z nich nepoškodí souborový systém, rm
odstraní (pokusí se) pouze soubory pomocí obvyklých volání systému souborů. Účinek na systém jako celek nebo na soubory uživatele může být samozřejmě podstatný, pokud je první příkaz proveden v adresáři obsahujícím důležité soubory.
Komentáře
- k dostatečně novým verzím GNU
rm
(funkce původně ukradená ze systému Solaris IIRC). Nejlépe plakat, pokud vaše vložená lehkárm
není kompatibilní s nejnovějším POSIXem.