chmod:如何以递归方式将执行权限添加到已具有执行权限的文件中

Cli*_*ton 15 unix linux shell chmod

我注意到:

chmod -R a+x 为所有文件添加执行权限,而不仅仅是当前可执行文件.

有没有办法只将执行权限添加到那些已经拥有用户权限执行集的文件中?

Oli*_*rth 26

用途find:

find . -perm /u+x -execdir chmod a+x {} \;
Run Code Online (Sandbox Code Playgroud)

  • 使用`-execdir`; 它比`-exec`更安全.此外,由于`chmod`在一个命令行中接受多个文件,`+`而不是`\;`可能有更好的性能. (5认同)

Ret*_*old 5

您可以使用find来获取所有这些文件:

find . -type f -perm -o+rx -print0 | xargs -0 chmod a+x
Run Code Online (Sandbox Code Playgroud)

更新:添加-print0以保留文件名中的空间

  • 不要那样做,它用文件名中的空格搞定.如果要管道到xargs,请使用`-print0` find选项和`-0` xargs选项. (3认同)