我有一个bash脚本,它基于用户输入来压缩文件名。它工作得很好,尽管速度很慢,因为我有时会分析多达5万个文件。改进查找性能
find "$DIR" -name "$USERINPUT" -print | /usr/bin/zip -1 SearchResult [email protected]
这里的@符号表示zip将接受来自STDIN的文件名。有没有办法让它变得更快?
我正在考虑创建一个cron作业来每天晚上更新locate数据库,但我不是root用户,所以即使它是值得的。
欢迎任何建议。
首先,我到美分:'type -d'会让'find'只查找文件夹,所以原则上它应该会有所不同。难道说'zip'是这里的瓶颈吗?我会用'tar czf'做一个测试insted来压缩文件,看看性能是否更好。 – 2012-01-05 00:44:31
很可能'zip'是问题:我选择它是因为数据上的用户是严格的窗口用户。我不知道GZIP或TAR是否可以在MS窗口上创建任何可读的内容。任何输入欢迎。 – Chris 2012-01-05 00:46:52
很难说出什么是瓶颈。你真的应该首先分析这两个步骤,通过与压缩文件分开生成文件列表,将其放入临时文件而不是管道。然后在每一步之前和之后调用'date'。 – mvds 2012-01-05 01:26:59