我有一个很大的音乐收藏,里面有一些重复的。有什么办法可以找到重复的文件。至少通过进行散列并查看两个文件是否具有相同的散列。
除了扩展名外,还可以找到同名文件的奖励积分 - 我想我有一些 mp3 和 ogg 格式版本的歌曲。
如果这是最简单的方法,我很高兴使用命令行。
我可以从终端检查文件的 md5sum 哈希值,
$ md5sum my_sensitive_file
8dad53cfc973c59864b8318263737462 my_sensitive_file
Run Code Online (Sandbox Code Playgroud)
但困难的部分是将哈希值与精确值进行比较。
对于大量文件,很难将 32 个字符输出与任何人的原始/精确哈希值进行比较。首先,工作会很单调,错误范围也很大。
是否可以自动化比较过程,最好是在 CLI 中?
grep 命令选项我想在我的整个驱动器中搜索一个字符串。按照我使用的Stack Overflow 中接受的答案:
sudo time grep -rnw '/' -e 'Sony 50"'
Run Code Online (Sandbox Code Playgroud)
在最快的 PCIe NVMe M.2 SSD 之一上处理 20 GB 数据需要53 小时;三星 Pro 960。
grep 输出日志在grep处理某些文件时,它会生成错误消息。这些可以通过附加2>/dev/null到命令来抑制。然而,这些错误会反馈正在取得的进展。一些示例输出(它不会全部适合)如下:
Binary file /home/Me/.config/google-chrome/Default/Sync Data/SyncData.sqlite3 matches
grep: /sys/kernel/security/ima/policy: Permission denied
grep: /sys/kernel/slab/:dt-0000008/alloc_calls: Function not implemented
grep: /sys/kernel/slab/:dt-0000008/free_calls: Function not implemented
(... SNIP ... 12 hours later PID 882 processed below...)
grep: /proc/882/task/922/attr/sockcreate: Invalid argument
grep: /proc/882/task/923/mem: Input/output error
(... SNIP ... 24 hours later PID …Run Code Online (Sandbox Code Playgroud)