我想在 Centos 4 上更改树上的权限,以便从目录递归地为所有目录添加执行权限。如果我使用普通的 chmod,目录以外的文件也会被修改:
chmod -R o+x /my/path/here
我怎样才能只影响目录?
答案1
运行(find
-type d
目录)使用-exec
主函数对文件夹执行chmod
only 操作:
find /your/path/here -type d -exec chmod o+x {} \;
为了确保它只对所需的对象执行此操作,您可以先运行find /your/path/here -type d
;它将简单地打印出它找到的目录。
答案2
看命令行示例 - chmod在维基百科中。
# Remove the execute permission on all files in a directory
# tree, while allowing for directory browsing.
chmod -R a-x+X directory
正如丹尼尔所补充道:这应该对你的情况有用:
chmod -R o+X directory
答案3
find /home/mydir -type d | xargs chmod ugo+rx
这在 CentOS6 上有效,而上面的 find -exec 则不行。基本上,它只是将目录列表通过管道传输到 xargs 命令,然后 xargs 命令将它们发送到 chmod。然后 chmod 在目录上设置通用读取和执行(搜索)。要为家庭中的所有用户执行此操作,请使用 sudo:
sudo sh -c "find /home/ -type d | xargs chmod ugo+rx"