对包含数百万个文件的目录进行 chmod 操作需要很长时间

对包含数百万个文件的目录进行 chmod 操作需要很长时间

我有一个包含数百万个文件和子目录的目录,我需要更改整个目录及其文件的权限,这需要花费很多小时才能完成。我想知道是否有比常规 chmod -R 命令更快的方法来完成此操作?

答案1

您的 chmod -R 非常理想。每个文件必须有一个 chmod() 系统调用,并且文件系统必须在块设备上更新其元数据。

如果已启用,请禁用此 FS 上的障碍(XFS、Ext4 等上的挂载选项),但请记住稍后启用它们。

我希望这只是一次性操作,而不是重复出现的问题?如果文件权限的轻松管理比性能和简单性更重要,您可以尝试编写一些覆盖 FUSE 文件系统,动态调整权限和 uid/gid。

答案2

您需要编写一个脚本并从根目录执行。我认为一个基本的脚本应该是这样的;

chmod 777 ./stuff/stuff
chmod 777 ./stuff/stuff 


chmod 666 ./stuff/stuff
chmod 666 ./stuff/stuff

等等等等……也许有更好的脚本或更好的方法。我不太擅长编写脚本。

相关内容