我的SSD快死了,所以我尝试用/home备份fsarchiver,但是在这个过程中,我遇到了一些错误,比如:file has been truncated: padding with zeros.
现在我试图定位这些文件,所以我在搜索bash/python/perl.脚本允许我搜索最后n个字节‘填充为零’的非空文件。
谢谢您的帮助,请原谅我的英语。
发布于 2014-01-01 04:06:18
此脚本获取命令行上的文件列表,并报告最后十个字节填充为零的文件的名称:
#!/bin/sh
for fname in "$@"
do
if [ -s "$fname" -a "$(tail -c10 "$fname" | tr -d '\000' | wc -c)" -eq 0 ]
then
echo Truncated file: $fname
fi
done 首先检查文件是否为非空([ -s "$fname" ]),然后取文件(tail -c10 "$fname")的最后10个字节,然后删除任何字节(tr -d '\000'),然后计算剩余的字节数(wc -c)。如果最后十个字节都是零,那么就没有剩下的字节了,并且文件被报告为截断。
如果要在测试中使用10字节以外的其他内容,请调整tail选项以适应。
如果您测试某个目录或文件系统中的所有文件,find可以提供帮助。如果上面的脚本位于可执行文件名padded.sh中,那么运行:
find path/to/suspect/files -size +10c -exec padded.sh {} +https://stackoverflow.com/questions/20862409
复制相似问题