Czy rm -rf *.*
uszkodzi Twój system plików, podczas gdy rm -rf /
nie to?
Komentarze
- Wymiana stosów systemów Unix i Linux była pomocna od ponad 6 lat, a SuperUser przez to samo: unix.stackexchange.com/questions/19547 superuser.com/questions/312769 unix.stackexchange.com/questions/302468
Odpowiedź
Tam „to nic specjalnego, rm -rf *.*
to polecenie z symbolem wieloznacznym nazwy pliku, rekurencyjnie usunie wszystkie pliki w bieżącym katalogu, które zawierają kropkę w nazwie.
rm -rf /
zwróci błąd dotyczący próby uruchomienia rm
w katalogu głównym. To jest wymagane przez POSIX :
Jeśli […] operand reso Jeśli do katalogu głównego, rm wypisze komunikat diagnostyczny na standardowy błąd i nie zrobi nic więcej z takimi argumentami.
W zależności w powłoce i jej ustawieniach *.*
może również pasować do ..
dla katalogu nadrzędnego, ale tak samo jak /
, próba usunięcia również jest błędem.
Żadne z nich nie uszkodzi systemu plików, rm
usunie tylko (spróbuje) pliki przy użyciu zwykłych wywołań systemu plików. Wpływ na cały system lub pliki użytkownika może oczywiście być znaczący, jeśli pierwsze polecenie zostanie wykonane w katalogu zawierającym ważne pliki.
Komentarze
- dla wystarczająco nowych wersji GNU
rm
(funkcja pierwotnie skradziona z Solaris IIRC). Najlepiej nie płakać, jeśli osadzony lekkirm
nie jest kompatybilny z najnowszą POSIX.