You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Synology NAS目录树中高效可靠地查找相同文件?

识别Synology NAS目录树中重复文件的方法

先修正你原命令的问题

你的bash命令没输出的核心原因是:uniq -d是整行去重,但md5sum的输出是「哈希值 文件路径」,即使两个文件哈希相同,文件路径不同就会导致整行不同,uniq -d无法识别为重复项。

修正后的命令可以先提取哈希值和文件路径,分组后筛选出哈希出现多次的条目,再列出对应的文件:

basedir=/volume1/bordel

find "$basedir" -type f -exec md5sum {} + |
sort -k1,1 |
awk '{hash=$1; $1=""; files[hash] = files[hash] $0 "\n"} END {for(h in files) {split(files[h], arr); if(length(arr)>1) print h "\n" files[h]}}'

这个命令会把相同哈希的文件路径归在一起,只输出存在重复的哈希及对应的所有文件。

更高效的实现方案

直接计算所有文件的哈希效率很低,尤其是大文件较多时。更合理的逻辑是先按文件大小过滤——只有大小完全相同的文件才有可能是重复文件,再对这些文件计算哈希:

basedir=/volume1/bordel

# 第一步:按文件大小分组,筛选出大小重复的文件
find "$basedir" -type f -printf "%s %p\n" |
sort -n |
awk '{size=$1; $1=""; paths[size] = paths[size] $0 "\n"} END {for(s in paths) {split(paths[s], arr); if(length(arr)>1) print s "\n" paths[s]}}' > /tmp/same_size_files.txt

# 第二步:对每个大小组内的文件计算哈希,找出重复
while read -r size; do
    read -r -a files
    printf "%s\n" "${files[@]}" | xargs md5sum |
    sort -k1,1 |
    awk '{hash=$1; $1=""; files[hash] = files[hash] $0 "\n"} END {for(h in files) {split(files[h], arr); if(length(arr)>1) print "重复哈希:" h "\n文件列表:" files[h]}}'
done < /tmp/same_size_files.txt

rm /tmp/same_size_files.txt

Synology NAS专属工具推荐

Synology自带的File Station有内置的重复文件查找功能,操作更直观:

  • 打开File Station,进入目标目录
  • 点击顶部「操作」→「查找重复文件」
  • 可按文件名、大小、内容等条件筛选,无需命令行即可完成查找。

内容的提问来源于stack exchange,提问作者Fravadona

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 01:03:15