我一直在使用fdupes
在我的文件系统中查找重复文件,但是,我经常发现自己想要查找特定文件的重复项或查找特定目录中文件的重复项。
详细说明,如果我打电话
fdupes dir1 dir2
结果将是在 dir1
和 dir2
中收集的文件集中找到的所有重复文件。但是,我真的很希望能够做类似的事情
fdupes-alternative file dir
在dir
中查找file
的重复项,而不必担心dir
中的重复文件。或者甚至能够做类似的事情
fdupes-alternative dir1 dir2
并检查dir1
中的任何文件是否在dir2
中重复,再次忽略重复项,如果它们都在dir1
或dir2
中。
是否有任何工具可以执行此类操作,或者有任何简单的方法可以执行此类操作?
最佳答案
您可以筛选感兴趣的内容的组。
假设 fdupes
输出格式为每个文件行加上空行来分隔组,如果您对某个文件感兴趣,请过滤包含文件名作为行的组。例如使用 awk:
fdupes file dir |\
awk -v F=file '
BEGIN { FS="\n"; RS="\n\n" }
{
for (i=NF; i; i--)
if ($i==F) {
printf("%s%s", x++?RS:"", $0)
break
}
}
'
如果您对某个目录感兴趣,请过滤包含以该目录开头的行的组。例如,再次使用“awk”:
fdupes dir1 dir2 |\
awk -v D=dir1/ '
BEGIN { FS="\n"; RS="\n\n" }
{
for (i=NF; i; i--)
if (index($i,D)==1) {
printf("%s%s, x++?RS:"", $0
break
}
}
关于linux - 查找特定文件或特定文件集的重复项的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55562080/