优化一行find + exec命令

时间:2013-01-30 01:02:25

标签: linux performance shell unix find

我需要获取系统上大约1M +文件的文件信息(名称,大小,修改日期)。 我目前使用的命令是:

sudo find "$FULFILLMENT" "$ARCH1" "$ARCH2" "$MASTERING" -type f -exec ls -lT {} +

有没有办法改善这个?唯一的要求是我必须获取上述卷中的所有文件,并为每个文件提取名称,大小和date_modified。

(有没有办法在这里做一个stat命令?这会加快速度吗?)

光纤连接机器需要一个小时。

1 个答案:

答案 0 :(得分:4)

您可以使用ls的内置打印功能,而不是将打印结果转移到find,而不是

sudo find ... -type f -printf '%p      %s      %t\n'

我不确定它会有多快,但它会将分岔保存到ls,这样可以省去第二次查询磁盘以通过ls检索信息无论如何find已经有了,所以它应该至少有点更快。

(顺便说一句,您可以在man find搜索-printf以获取有关这些格式字符串的更多信息。特别是,您可以自定义上次修改时间的显示,并且可以指定其他字段的显式字段宽度。)