Co robi rm -rf, gdy usuwa się pliki lub katalogi?
Jak działają opcje -ri -f?
Co robi rm -rf, gdy usuwa się pliki lub katalogi?
Jak działają opcje -ri -f?
Odpowiedzi:
Polecenie rm -rfjest takie samo jak rm -r -f.
Ze rmstrony podręcznika (wpisz man rmterminal, aby go zobaczyć) -r:
remove directories and their contents recursively
I -frobi:
ignore nonexistent files and arguments, never prompt
Więc w połączeniu robią oba.
Ostrożnie używaj tego polecenia!
rm -rf /teoretycznie usunie każdy plik na twoim komputerze, który znajduje się w katalogu, do którego masz uprawnienia do zapisu. Jeśli jesteś rootem, oznacza to wymazanie całego systemu. (W praktyce to nie działa, ponieważ GNU rmma specjalny przypadek, który odmawia zgody, rm -r /chyba że ty też powiesz --no-preserve-root.)
rm -rf /sprawdzić, czy jest prawidłowo złapany.
Oprócz poprzedniej poprawnej odpowiedzi chciałbym nauczyć cię, jak łowić:
Jeśli nie masz pewności, jak działa polecenie, jakie opcje ma i co robi, otwórz terminal i wpisz
man <command>
Na przykład:
man rm
Tam znajdziesz opcję. Strona podręcznika może być bardzo długa do przeczytania, więc w typie terminala:
/<pattern>
Na przykład robienie:
/-f
Możesz łatwo wylądować do:
-f, --force
ignore nonexistent files and arguments, never prompt
Dla -r wykonaj:
-r, -R, --recursive
remove directories and their contents recursively
Możesz przechodzić między wynikami wyszukiwania za pomocą n(dalej) i N(poprzednio).
Jeśli musisz coś zrobić, ale nie znasz nazwy polecenia, użyj aproposdo wyszukiwania na stronach podręcznika :
apropos <pattern>
Na przykład:
apropos directory listing
rmjest skrótem od usunięcia. rFlaga jest do katalogów usunąć i ich zawartość rekursywnie i fżycie środki, i zastępuje wszelkie monity potwierdzenia.
r flag is to remove directories nie jest w porządku ... usuwa katalogi wraz z zawartością, jest to operacja rekurencyjna .. według twoich słów, usuwa tylko katalogi, a co z podkatalogami, plikami pod nim? ponieważ pozycja katalogu zawiera tylko mapowanie i-węzłów, nie ma to żadnego sensu ..
Jak już wspomniano, rm -rf <ARG>ma na celu wymuszone usuwanie plików rekurencyjnie, gdzie <ARG>jest katalog (choć może to być plik w porządku).
Chodzi o -rto, że (usuwanie rekurencyjne) rmnie można usunąć katalogów, jeśli nie są one puste, po prostu dlatego, że bazowe wywołanie systemowe, które rmużywa ( unlink ) działa tylko na pustych katalogach. Tak więc, to, co -rrobi flaga, to najpierw wyszukiwanie dogłębne w dół do katalogów i usuwanie plików, a dopiero potem, gdy katalog jest pusty - usunie go. Ten sam efekt osiąga się za pomocą findpolecenia z -deleteflagą (gdy nie określisz filtrowania według -type, ale to inna historia).
Jeśli chodzi o -fto, robi dwie rzeczy - jedna zapobiega pytaniu, czy chcesz usunąć plik, czy nie (np. Gdy usuwasz plik należący do innego użytkownika z katalogu, nie wyświetla rm: remove write-protected regular empty file 'f1'?monitu o potwierdzenie) i ignoruje nieistniejące pliki. Na przykład w przypadku nieistniejącej nazwy pliku powinien pojawić się rm: cannot remove 'nonexistent': No such file or directorybłąd.
Zobacz też: