有一个现有的问题“查找所有稀疏文件”,我想我可以使用它,但脚本太复杂,难以理解。我不认为 Ubuntu 文件管理器的 GUI 提供了一种方法来了解文件是否稀疏。怎样说呢?
文件系统是EXT4。
答案1
接受的答案是一句话:
# find / -type f -printf "%S\t%p\n" | gawk '$1 < 1.0 {print}'
所以这有很多部分。让我们来分解一下:
find / -type f
这部分将搜索机器上的所有文件
-printf "%S\t\%p\n"
这部分将打印出文件的“稀疏性”和完整的文件名。
因此,此时的输出将类似于以下格式的条目列表:
1.23456 /tmp/a/file
如果第一个数字小于 1.0,则该文件被视为“稀疏”。
那么我们可以通过 awk 过滤它:
gawk '$1 < 1.0 {print}'
这将通过仅报告第一个数字 < 1.0 的行来将输出限制为稀疏行
结果是所有稀疏文件及其“稀疏性”的列表。
对于一个简单的命令来说这是很多工作!
如果您只想测试特定文件是否稀疏,那么您可以使用它的变体。例如
find file_to_test -printf "%S"
将返回一个数字。可以测试为 < 1.0
答案2
您想在终端上检查吗?
find FILENAME -type f ! -size 0 -printf '%S\n'
如果它打印的内容小于 1,则它是一个稀疏文件。