Czuję, że powinienem wiedzieć na pewno: jeśli to zrobię ls <something>, rm <something>usunę dokładnie te same lswyświetlane pliki ? Czy są jakieś okoliczności, w których rmmożna usunąć pliki, które lsnie były wyświetlane? (To jest w bash 18.04)
Edycja: dziękuję wszystkim, którzy odpowiedzieli. Myślę, że pełna odpowiedź jest kombinacją wszystkich odpowiedzi, więc zaakceptowałem najbardziej uprzywilejowaną odpowiedź jako „odpowiedź”.
Nieoczekiwane rzeczy, których nauczyłem się po drodze:
lsnie jest tak prosty, jak mogłoby się wydawać, jeśli chodzi o obsługę argumentów- W prostej nieskrępowanej instalacji Ubuntu aliasy .bashrc
ls - Nie nadawaj nazw plikom zaczynającym się od myślnika, ponieważ mogą one wyglądać jak argumenty poleceń, a nazywanie jednego -r wymaga tego!
find -deletebyć lepsze niż rm? Mówisz „właśnie dlatego” , ale nie jest dla mnie całkowicie jasne, do czego to się odnosi. Zauważ też, że twoje findwywołanie usunie rekursywnie wszystkie pliki w bieżącym katalogu, rma po prostu usunie pliki z katalogu bezpośredniego. To także -name *nie ma możliwości. Podsumowując, jestem dość zaskoczony twoją radą ...
findjest taka, że możesz ją uruchomić, zobaczyć wszystkie pliki, a następnie uruchomić to samo polecenie -delete. Ponieważ już widziałeś wyniki find, nie powinno być dwuznaczności co do tego, co zostanie usunięte (tak naprawdę chciałbym usłyszeć więcej szczegółów na ten temat w formie odpowiedzi)
-delete" - Ale jak to jest lepsze niż uruchamianie ls <filespec>, a następnie rm <filespec>(co OP już wie, jak to zrobić)?
find ... -printnajpierw, aby potwierdzić, które pliki zostaną usunięte, a następnie find ... -deletenadal będziesz usuwać pliki utworzone między dwoma poleceniami. Jeśli użyjesz obu z nich, -printa -deletenie otrzymasz potwierdzenia, tylko raport po fakcie o tym, co zostało usunięte (i równie dobrze możesz użyć rm -v).
rmnie ma--dry-runflagi ...