Meu diretório é o seguinte:
Música: 1.mp3, 2.flac, 3.wav, 4.ogg e 5.mp4
Estou tentando remover todos os arquivos com extensões: .mp3, .wav, .flac e .ogg com o seguinte comando:
find ./Music -type f -name \('*.mp3' -or -name '*.wav' -or -name '*.flac' -or -name '*.ogg'\) -delete
mas não está fazendo nada no diretório
alguma ideia do porquê?
(estou um nível acima do diretório Music, aliás)
Você tem a sintaxe errada. Você deseja todas as
-name
opções nos mesmos parênteses e um espaço ao redor dos parênteses, assim:Seu comando original estava usando
-name \('*.mp3' -or -name '*.wav' -or -name '*.flac' -or -name '*.ogg'\)
, o que significa que ele estava procurando por arquivos chamados\(*.mp3
, ou'*.wav'
ou'*.flac'
ou'*.ogg'\)
. Você pode ver isso se executar o comando sem a-delete
opção:Como não há correspondências para
\('*.mp3'
ou*.ogg\)
, esses arquivos não foram encontrados. E como você não agrupou o comando entre parênteses (você precisa de espaços entre parênteses para que isso funcione),-delete
não foi aplicado como você esperava (desculpe, não sei exatamente comofind
teria analisado isso).