
내 디렉토리는 다음과 같습니다.
음악: 1.mp3, 2.flac, 3.wav, 4.ogg 및 5.mp4
다음 명령을 사용하여 확장자가 .mp3, .wav, .flac 및 .ogg인 모든 파일을 삭제하려고 했습니다.
find ./Music -type f -name \('*.mp3' -or -name '*.wav' -or -name '*.flac' -or -name '*.ogg'\) -delete
하지만 디렉토리에는 아무 것도 하지 않습니다.
이유를 아시나요?
(그런데 저는 음악 카탈로그보다 한 레벨 위에 있습니다)
답변1
구문이 잘못되었습니다. -name
다음과 같이 모든 옵션이 동일한 괄호 안에 있고 괄호 주위에 공백이 있어야 합니다 .
find ./Music -type f \( -name '*.mp3' -or -name '*.wav' -or -name '*.flac' -or -name '*.ogg' \) -delete
원래 명령이 사용 중입니다. 이는 , 또는 또는 또는 -name \('*.mp3' -or -name '*.wav' -or -name '*.flac' -or -name '*.ogg'\)
이라는 파일을 찾고 있음을 의미합니다 . 옵션 없이 명령을 실행하면 이를 확인할 수 있습니다 .\(*.mp3
'*.wav'
'*.flac'
'*.ogg'\)
-delete
$ find ./Music -type f -name \('*.mp3' -or -name '*.wav' -or -name '*.flac' -or -name '*.ogg'\)
./Music/3.wav
./Music/2.flac
\('*.mp3'
일치 항목이 없거나 일치하지 않아 *.ogg\)
파일을 찾을 수 없습니다 . 명령을 괄호 안에 그룹화하지 않았으므로(이 작업을 수행하려면 괄호 주위에 공백이 필요함) 의도한 대로 적용되지 않습니다(죄송합니다. 구문 분석 -delete
방법을 모르겠습니다 ).find