Command-Line
從目前目錄刪除重複文件的命令
我有一個由程序創建的包含多個重複文件的目錄。副本具有相同的名稱(數字除外),但並非所有具有相同名稱的文件都是重複的。
刪除重複項的簡單命令是什麼(理想情況下,單行僅限於 GNU coreutils,與有關腳本的問題不同)?
範例文件名:
parra1998.pdf parra1998(1).pdf parra1998(2).pdf
一個快速而骯髒的解決方案是對文件進行雜湊處理,然後搜尋多次出現的雜湊值並刪除文件名已編號的雜湊值。
例如:
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 "§"