현재 디렉터리에서 중복 파일을 삭제하는 명령

현재 디렉터리에서 중복 파일을 삭제하는 명령

프로그램에 의해 생성된 여러 개의 중복 파일이 포함된 디렉터리가 있습니다. 중복 항목은 이름이 동일하지만(번호 제외), 이름이 같은 파일이 모두 중복되는 것은 아닙니다.

중복을 제거하는 간단한 명령은 무엇입니까(이상적으로는 GNU coreutils에서 한 줄로 제한됨)스크립트에 대한 질문)?

파일 이름 예: parra1998.pdf parra1998(1).pdf parra1998(2).pdf

답변1

빠르고 더러운 해결책은 파일을 해시한 다음 여러 번 나타나는 해시를 검색하고 파일 이름 번호에 대한 해시를 제거하는 것입니다.

예를 들어: sha1sum * > files.sha1sum cat files.sha1sum | cut -f1 -d" " | sort | uniq -c | grep -v " 1 " | sed --regexp-extended 's/^[^0-9]+[0-9] //g' | xargs -n1 -I§ grep § files.sha1sum | sed --regexp-extended 's/^[^ ]+ +//g' | grep -v '(' | xargs -n1 -I§ rm "§"

관련 정보