Uruchomiłem to polecenie wczoraj, pomyślałem na maszynie testowej, ale był to serwer plików podłączony przez SSH.
sudo rm -rf /tmp/* !(lost+found)
Mój emulator terminala to Konsole. Mój system to Debian 7.
Pytanie:
Czy to polecenie usunęło inne pliki niż pliki w / tmp?
files
filesystems
rm
tmp
coś tam coś tam
źródło
źródło
dsgsadfsf
i naciśnij Enter. Zobacz wynik. Jeśli takbash: dsgsadfsf: command not found
, to twoja skorupa jestbash
.Odpowiedzi:
Prawidłowa składnia w bash jest następująca:
Jak @goldilocks napisał w komentarzach, oryginalny komenda powoduje ekspansję na zapytania (usuwa wszystkie pliki w
/tmp
folderze, a następnie idzie dalej, i usuwa wszystkie pliki w bieżącym katalogu roboczym, w przypadkuhome
folderu).Możesz spróbować sprawdzić, czy możesz odzyskać część swoich danych. Jest to kwestia o odzyskiwanie danych Linux tutaj .
źródło
rm -rf / tmp
^^sudo
, więc normalny folder, który można zapisać tylko w katalogu głównym, niekoniecznie pomógłby.W
!(lost+found)
twoimrm
rozkazie był prawdopodobnie fatalny błąd:Nie wiem dokładnie, co
bash
się z tym dzieje, ale poniższe polecenie wypisuje wszystko w moim,/tmp/
a także w moim bieżącym katalogu (który jest obecnie~
):źródło
!(folder)
to część polecenia, które raz uruchomiłem, które usunęło wszystkie opróczfolder
.!lost+found: event not found
jak!
jest używany do pobierania poleceń z historii.cd /; echo !(lost+found)
> _ <!(foo)
działa w bash jako „wszyscy oprócz foo” tylko wtedy, gdyextglob
jest ustawiona opcja. Co więcej, OP nie określił, jakiej powłoki używa, więc naprawdę trudno zgadnąć, co dokładnierm !(lost+found)
zrobiła komenda w jego przypadku.bash
domyślną powłokę. Najprawdopodobniej tego nie zmienił. Ponadto w Debianie 7extglob
opcja jesttrue
domyślnie ustawiona (właśnie to sprawdziłem).