Co jest złego w tym poleceniu „znajdź”?

14

Wykonuję następujące polecenie (aby znaleźć wszystkie pliki z .tsrozszerzeniem i je usunąć):

find . -type f -name "*.ts" –delete

Wyświetlany jest błąd:

find: paths must precede expression: `–delete'

Co zrobiłem źle?

Dorad
źródło

Odpowiedzi:

35

Masz znak typograficzny zamiast minus ( -).

Zmień polecenie na

find . -type f -name "*.ts" -delete

Pełna składnia patrz man find:

DZIAŁANIA
       -delete

        Usuń pliki; true, jeśli usunięcie się powiodło. Jeśli usunięcie się nie powiedzie, zostanie wyświetlony komunikat o błędzie.
        Jeśli się -delete nie powiedzie, findstatus wyjścia będzie niezerowy (kiedy w końcu wyjdzie).
        Użycie -deleteautomatycznie włącza -depthopcję.


Zachowaj ostrożność podczas kopiowania i wklejania poleceń z blogów i procesorów tekstu sformatowanego. Mogą przekształcać niektóre symbole typograficzne w ich ekwiwalenty zwykłego tekstu i odwrotnie.

Rozważ użycie prostych edytorów tekstu do notatek następnym razem - użyj zwykłego tekstu, Markdown lub reStructuredText.

Jak wspomniano w @AuxTaco - niektóre blogi mogą polegać na kopiowaniu w celu zaatakowania komputera .

N0rbert
źródło
W tym konkretnym przypadku nie znamy źródła tego polecenia. Jeśli oryginalny autor błędnie to zrobił, --silnik przekonwertował go na . Nie znamy więc całej historii :)
N0rbert
2
Mogę opowiedzieć historię: skopiowałem ją z terminala do dokumentu MS Word składającego się z zestawu poleceń do wdrożenia naszego serwera. MS Word w niektórych przypadkach automatycznie naprawia myślnik. Potem rok lub jakiś po skopiowaniu tego polecenia i pytanie otworzyło się ... Dzięki.
Dorad
1
Prawdopodobnie lepiej jest używać Notepad ++ w tej sytuacji, niż Word.
Davidw
1
Nigdy nie używaj edytora tekstu do edycji kodu. To (duży powód), dlaczego wciąż istnieją edytory tekstu. Ostatnią rzeczą, której potrzebujesz, są podstawione znaki lub zawijanie wyrazów.
Joe