Что не так с этой командой «найти»?


14

Я выполняю следующую команду (чтобы найти все файлы с .tsрасширением и удалить их):

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

Появляется ошибка:

find: paths must precede expression: `–delete'

Что я сделал не так?

Ответы:


35

У вас есть типографский знак вместо минус ( -).

Измените свою команду на

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

Для полного синтаксиса смотрите man find:

АКЦИИ
       -delete

        Удалить файлы; истина, если удаление прошло успешно. Если удаление не удалось, выдается сообщение об ошибке.
        В случае -delete неудачи findсостояние выхода будет отличным от нуля (когда оно в конце концов выйдет).
        Использование -deleteавтоматически включает -depthопцию.


Будьте осторожны с копированием и вставкой команд из блогов и текстовых редакторов. Они могут преобразовывать некоторые типографские символы в их текстовые эквиваленты и наоборот.

В следующий раз подумайте об использовании простых текстовых редакторов для заметок - используйте простой текст, Markdown или reStructuredText.

И, как упоминал @AuxTaco, некоторые блоги могут полагаться на ваше копирование для атаки на ваш компьютер .



В данном конкретном случае мы не знаем источника этой команды. Если первоначальный автор ошибочно сделал, --то движок преобразовал его в . Так что мы не знаем всей истории :)
N0rbert

2
Я могу рассказать историю: я скопировал его с терминала в документ MS Word, состоящий из набора команд для развертывания нашего сервера. MS Word автоматически исправляет черту в некоторых случаях. Через год или несколько после того, как я скопировал эту команду и вопрос открылся ... Спасибо.
Дорад

1
Вероятно, в этой ситуации лучше использовать Notepad ++, а не Word.
Davidw

1
Никогда не используйте текстовый процессор для редактирования кода. Это (большая причина), почему все еще есть текстовые редакторы. Последнее, что вам нужно, это подставленные символы или перенос слов.
Джо
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.