我需要在驱动器上播放150万个文件。 我现在在做:
sudo chown -R www-data:www-data /root-of-device
但运行需要很长的时间。 我想知道是否有某种超级低级的方法来驱动驱动器上的每个文件。
使用xargs -p或者GNU parallel可以大大提高速度。
不幸的是,我不认为有这样的事情,但如果有的话,我会感到惊喜。 你可以用C编写你自己的实现并大量优化。 然而,成功取决于如何优化chown开始。 考虑到它是核心工具之一,我会说这是相当优化的。 另外,你最有可能通过I / O速度。
通过将find的结果传递给xargs ,避免了ls和rm的限制,在目录中有很多文件的情况下,
find /path/* | xargs rm
所以,一个疯狂的猜测,也许这可以加快chown ,以防在recursion扫描文件系统时比查找更慢:
sudo find /path/* | xargs chown www-data:www-data
我正在使用Amazon EC2,并有此问题。 2件事情:
修复现状:你将不得不处理缓慢。 也许你可以使用“屏幕”或类似的东西,这样的过程可以继续在后台。
修复未来的情况:你可以看上游,看看文件是如何生成的。 既然你提到过www-data,我假设文件的使用者是Apache。 如果从其他程序(NFS,Samba,SSH等)中删除文件,请确保这些程序正在将用户:组设置为www-data:www-data。