Ponieważ myślę, że to pytanie dotyczy bardziej tego, co * robi (a nie rm), spróbujmy innego podejścia.
Jeśli nie masz pewności, co robi *, możesz najpierw „przetestować”, używając nieszkodliwego polecenia, takiego jak echo. Zanim to uruchomisz, spróbuj zgadnąć, co pokażą, jeśli uruchomisz je w swoim domu, reż.
echo *
echo .*
Ale najpierw stwórzmy plac zabaw, abyśmy mogli bawić się z gwiazdami i zobaczyć, z czym skończymy.
mkdir ~/star_test/
cd ~/star_test/
>.file1
>file2
Teraz w tym katalogu mamy to:
cj@zap:~/star_test$ ls -1a
.
..
.file1
file2
Teraz zwróć uwagę na to, co * rozwija się za pomocą polecenia echo:
cj@zap:~/star_test$ echo *
file2
cj@zap:~/star_test$ echo .*
. .. .file1
Zobaczmy więc, co dzieje się z poleceniem rm
cj@zap:~/star_test$ rm -rf *
cj@zap:~/star_test$ ls -1a
.
..
.file1
Jak widzisz, usunął tylko plik2, ponieważ * rozwinął się tylko do pliku2. Jeśli wpiszesz rm -rf. *, To będzie to samo co pisanie
rm -rf . .. .file1
I szczerze mówiąc, to nie wygląda zabawnie;)
Mam nadzieję, że to wyjaśnia * część twojego pytania.
Aktualizacja:
Jednak, jak zauważa Ankur Goel, w rm jest wbudowana ochrona (coś niezwykłego dla poleceń powłoki :)
Stwórzmy nowy plac zabaw:
cd ~/star_test/
mkdir -p test1/test2/test3
sudo chown root.root test1
cd test1/test2/test3/
>.file1
>file2
Teraz mamy to ponownie, ale z test1 będącym własnością roota jako ochrona, jeśli rm zacznie szaleć.
cj@zap:~/star_test/test1/test2/test3$ ls -a
. .. file2 .file1
cj@zap:~/star_test/test1/test2/test3$ echo .*
. .. .file1
Więc usuńmy wszystko:
cj@zap:~/star_test/test1/test2/test3$ rm -rf .*
rm: cannot remove directory `.'
rm: cannot remove directory `..'
cj@zap:~/star_test/test1/test2/test3$ ls -a
. .. file2
I wygląda na to, że rm nie usunął. i .. nawet gdybyśmy mu kazali !!!
Po tej długiej odpowiedzi okazuje się, że można bezpiecznie usunąć wszystko w reż z tym:
rm -rf * .*
Ale użyłbym tego ostrożnie, ponieważ nie jestem pewien, czy wszystkie implementacje rm zachowują się w ten sposób!
rm -rf ./*
i wyraźnie określiłem bieżący katalog ... ale Ankur wydaje się mówić, że to i tak nie ma znaczenia.