从当前目录删除重复文件的命令

从当前目录删除重复文件的命令

我有一个包含多个重复文件的目录,由程序创建。重复项具有相同的名称(数字除外),但并非所有具有相同名称的文件都是重复项。

删除重复项的简单命令是什么(理想情况下仅限于 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 "§"

相关内容