我需要在一个驱动器上 chown 150 万个文件。我目前正在做:
sudo chown -R www-data:www-data /root-of-device
Run Code Online (Sandbox Code Playgroud)
但是运行需要很长时间。我想知道是否有某种超快的低级方式来 chown 驱动器上的每个文件。
不幸的是,我不认为有这样的事情,但如果有,我会感到惊喜。您可以用 C 编写自己的实现并对其进行大量优化。然而,它的成功取决于优化chown的开始程度。考虑到它是核心实用程序之一,我会说它相当优化。此外,您很可能会受到 I/O 速度的限制。
我通过将find的结果传送到xargs来避免ls和rm的限制,在目录有很多文件的情况下,我已经取得了一些成功,即:
find /path/* | xargs rm
Run Code Online (Sandbox Code Playgroud)
所以,一个疯狂的猜测,也许这可以加快chown 的速度,以防递归扫描文件系统比find慢:
sudo find /path/* | xargs chown www-data:www-data
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10314 次 |
最近记录: |