小智 10
它在我的 mac 上对我有用,您将通过其 md5 值捕获重复文件:
find ./ -type f -exec md5 {} \; | awk -F '=' '{print $2 "\t" $1}' | sort
Run Code Online (Sandbox Code Playgroud)
不知道有关Mac兼容的,但是这对我的作品(TM):
#!/bin/bash
[ -n "$1" ] || exit 1
exec 9< <( find "$1" -type f -print0 )
while IFS= read -r -d '' -u 9
do
file_path="$(readlink -fn -- "$REPLY"; echo x)"
file_path="${file_path%x}"
exec 8< <( find "$1" -type f -not -path "$file_path" -print0 )
while IFS= read -r -d '' -u 8 OTHER
do
cmp --quiet -- "$REPLY" "$OTHER"
case $? in
0)
echo -n "cmp -- "
printf %q "${REPLY}"
echo -n ' '
printf %q "${OTHER}"
echo ""
break
;;
2)
echo "\`cmp\` failed!"
exit 2
;;
*)
:
;;
esac
done
done
Run Code Online (Sandbox Code Playgroud)
结果是一组您可以运行以检查结果是否正确的命令:)
编辑:最后一个版本适用于非常奇怪的文件名,例如:
$'/tmp/--$`\\! *@ \a\b\E\E\f\r\t\v\\"\' \n'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9129 次 |
| 最近记录: |