使用chmod
,我在当前目录中做了chmod +x *.sh
但是如果我想更改所有文件,包括具有sh文件扩展名的子文件夹中的文件,该怎么办?如何将文件权限更改为某个文件模式到我当前目录的子文件夹?
chmod +x -R *
工作,但我需要的东西更像是chmod +x -R *.sh
使用chmod
,我在当前目录中做了chmod +x *.sh
但是如果我想更改所有文件,包括具有sh文件扩展名的子文件夹中的文件,该怎么办?如何将文件权限更改为某个文件模式到我当前目录的子文件夹?
chmod +x -R *
工作,但我需要的东西更像是chmod +x -R *.sh
查找功能:
find . -name "*.sh" -exec chmod +x {} \;
尝试使用与xargs的发现的光荣组合。
find . -iname \*.sh | xargs chmod +x
.
是开始的目录,在本例中是工作目录。
随着find
现代版本,你会得到一个xargs
的办法,避免了命令(chmod
)多次调用的好处。该命令只是稍有不同。
find . -name "*.sh" -exec chmod +x {} +
从find
docs剪断上拱2015年9月1日(强调通过我加入):
-exec command {} +
的
-exec
动作的这种变体上运行所选择的指定的命令文件,,但命令行是通过在最后附加每个选定的文件名来构建的;该命令的总调用次数将远远少于匹配文件的数量。命令行的构建方式与xargs
构建其命令行的方式大致相同。命令中只允许有一个{}
实例。该命令在起始目录中执行。
命令行很难记住或记住,我不得不经常访问此页面以查看语法。你有没有办法记住这个命令? – ivanceras 2011-01-07 15:52:31
我不记得很多的命令。所以,我构建了接受参数的脚本。 – Nathan 2014-02-17 22:03:02