W przypadku komputera, takiego jak Macbook, nie znajdziesz dużej różnicy w wydajności między tymi dwoma poleceniami. Jeśli jednak spojrzysz na wersję -exec, zobaczysz subtelną różnicę:
sudo find / -iname ".file-to-delete" -exec rm {} \;
Oznacza to, że znajdziesz wszystkie te pliki o nazwie „.file-to-delete”. Jednak to wyszukiwanie może zwrócić niektóre niechciane fałszywe alarmy. Robiąc coś z sudo, powinieneś być bardziej ostrożny. Zaletą użycia -exec rm {} jest to, że możesz przekazywać argumenty do rm w następujący sposób:
sudo find / -iname "*~" -exec rm -i {} \;
W tym przykładzie chcę usunąć te pliki kopii zapasowej, które tworzy emacs. Jednak ta tylda może znajdować się w jakimś niejasnym pliku, o którym nie wiem i może być ważna. Plus Chcę potwierdzić usunięcie. Więc umieściłem opcję „-i” w poleceniu rm. To da mi interaktywne usunięcie.
Możesz także sprecyzować użycie rm do usuwania katalogów i plików:
find /usr/local/share/ -iname "useless" -exec rm -r {} \;
W skrócie, -exec daje ci nieco większą kontrolę nad faktycznym poleceniem, które usuwa znaleziony element. Zaletą jest to, że używasz jednego narzędzia do wyszukiwania plików, innego narzędzia do ich usuwania. Również nie każda wersja narzędzia find ma opcję -delete. Lepiej więc użyć każdego narzędzia do poprawnej pracy. Jest to filozofia unixowa - jedno narzędzie, jedno zadanie, używaj ich razem, aby robić to, co musisz zrobić.
-delete
przełącznika przed-name
usunięciem określonego drzewa plików, więc myślę, że muszę być ostrożny.