如何在Linux中recursion地将CHMOD命令应用于任何具有特定名称的文件?

我需要知道如何将CHMOD命令仅应用于具有特定名称的文件recursion?

chmod 755 -R filename 

像上面的东西,但它应该适用于任何子filename夹中存在的任何文件名。

这将从当前目录中recursion地find名为filename的所有文件,并将它们传递给chmod

 find -name filename | xargs chmod 755 

有关更高级的选项,请参阅findxargs的联机帮助页。 特别是,如果您在名称中带有空格的文件出现错误,请查看-print0标志和xargs对应的-0

find中也有一个exec参数可以做同样的事情:

 find . -name filename -exec chmod 755 {} \; 

如果您使用+运算符来查找使其在多个文件中同时运行chmod ,则可以获得两全其美的效果。

 find . -name filename -exec chmod 755 '{}' + 

你应该总是把一个'围绕你的{} ,否则一个文件名与一个空间在里面可能会搞砸了。 在这种情况下,这不是一个问题,但我有这样做的习惯。