O que há de errado com este comando 'find'?

14

Estou executando o seguinte comando (para encontrar todos os arquivos com .tsextensão e excluí-los):

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

Um erro aparece:

find: paths must precede expression: `–delete'

O que eu fiz errado?

Dorad
fonte

Respostas:

35

Você tem sinal tipográfico em vez de menos ( -).

Mude seu comando para

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

Para sintaxe completa, consulte man find:

AÇÕES
       -delete

        Deletar arquivos; true se a remoção for bem-sucedida. Se a remoção falhar, uma mensagem de erro será emitida.
        Se -delete falhar, findo status de saída será diferente de zero (quando eventualmente sair).
        O uso de -deleteliga automaticamente a -depthopção.


Cuidado ao copiar e colar comandos de blogs e processadores rich text. Eles podem transformar alguns símbolos tipográficos em seus equivalentes em texto sem formatação e vice-versa.

Considere usar editores de texto simples para as anotações na próxima vez - use texto sem formatação, Markdown ou reStructuredText.

E como o @AuxTaco mencionou - alguns blogs podem contar com a sua cópia para atacar o seu computador .

N0rbert
fonte
Nesse caso em particular, não sabemos a fonte desse comando. Se o autor original tiver errado o --mecanismo, ele será convertido para . Então não sabemos a história toda :)
N0rbert
2
Eu posso contar a história: eu copiei e colei do terminal para um documento do MS Word consistindo em um conjunto de comandos para implantar nosso servidor. O MS Word corrige automaticamente o traço em alguns casos. Então, um ano ou alguns depois que eu copiei esse comando e a pergunta foi aberta ... Obrigado.
Dorad
1
Provavelmente é melhor usar o Notepad ++ nessa situação, em vez do Word.
Davidw
1
Nunca use um processador de texto para editar o código. É por isso que ainda existem editores de texto. A última coisa que você precisa é de caracteres substituídos ou quebra de linha.
Joe