Czy istnieje różnica między rm -rf / i rm -rf *. *?

Czy rm -rf *.* uszkodzi Twój system plików, podczas gdy rm -rf / nie to?

Komentarze

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 lekki rm nie jest kompatybilny z najnowszą POSIX.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *