我的 Linux SAMBA 服务器出现问题,它损坏了我的一些照片(数十个目录中的数百个文件)。我有一台带有时间机器备份的 Mac,里面有很多原件。
通过在我的 Mac 上安装 SAMBA 共享,我可以搜索零 kb 文件
find /Volumes/Photos/ f -empty -not -path '*/\.*'
如何扩展此命令来搜索我安装的时间机器以查看是否有任何零 kb 文件具有未损坏的等效文件?
我想我需要一个 bash 脚本。或者也许是Python。
答案1
我只能在linux上测试以下内容,而不能在mac上测试,但我认为它没有使用任何非标准的东西。
-
如果文件名以破折号开头或任何文件名包含换行符,则不起作用。
我从包含以下内容的目录开始:
$ find -type f | xargs du -h
4,0K ./find_empty_dupes.sh
4,0K ./sub/sub2/corrupt.txt
0 ./sub/corrupt.txt
0 ./sub/empty.txt
并运行以下脚本:
#!/bin/bash
find . -type f -empty | while IFS= read -r file; do
if find . -name "$(basename "$file")" -not -empty | grep -q '.'; then
echo "$file"
fi
done
这是测试运行:
$ ./find_empty_dupes.sh
./sub/corrupt.txt