bash를 사용하여 wav 또는 mp3라는 디렉터리를 포함하지 않는 디렉터리를 어떻게 삭제합니까? 저는 macOS Sierra를 사용합니다.
find . -type d \! -exec test -e '{}/wav' \; -print
wav 디렉토리를 포함하지 않는 디렉토리를 찾으십시오. 이 명령에 mp3를 어떻게 포함시킬 수 있나요? 생성된 디렉터리를 어떻게 삭제하나요?
내 음악 라이브러리는 다음 구조를 따릅니다.
/Musik/<Artist>/<format>/<Artist---Album>/<Track_Titel.wav>
여기서 형식은 wav 또는 mp3입니다. 예를 들어 오디오 파일이 없지만 덮어쓰여진 디렉토리가 많기 때문에 오디오 파일이 포함되지 않은 디렉토리를 삭제하기 위해 빈 디렉토리를 검색할 수는 없습니다.
답변1
먼저 이 작업을 수행하기 전에,파일을 백업하세요.
진지하게.
디렉토리(또는파일) 제목 wav
또는 mp3
(케이스예민한) 다음을 시도해 보세요.
find /Musik -mindepth 1 -maxdepth 1 -exec test \! -e {}/wav \; -exec test \! -e {}/mp3 \; -print
당신이 가진 후에야출력 확인삭제하려는 디렉토리와 일치하십시오.(그리고 백업을 다시 확인하세요)그런 다음 다음을 실행해야 합니다.
find /Musik -mindepth 1 -maxdepth 1 -exec test \! -e {}/wav \; -exec test \! -e {}/mp3 \; -exec rm -rf {} \;
답변2
2개 테스트의 경우 테스트를 두 번 실행하고 둘 다 실패하면 다음을 수행합니다.
find . -type d -exec bash -c "test -f \"{}\"/*wav || test -f \"{}\"/*mp3 || test -d \"{}\"/* || rm -rf \"{}\"" \;