[英]How to find all .sh files and make them executable using bash in linux?
同样,当我启动时,我想在找到这些 .sh 文件时将路径传递给文件夹
我从这个开始
#!/bin/bash
find /home/user_name -name "*.sh"
并且在脚本必须用可执行文件写入徽标列表之后
就安全性和奇怪的文件名(空格、奇怪的字符等)而言,最安全和最安全的方法是直接使用find
:
find /home/user -name "*.sh" -execdir chmod u+x {} +
您可以查看注释和手册以了解为什么这是安全的,但简而言之,它可以确保您的文件在chmod
命令中正确引用。 execdir
(而不是-exec
)是一项额外的安全功能,可确保在找到文件的目录中执行命令以避免竞争条件(在手册中详细说明)。
如果你想让当前用户的所有文件都可以执行,你可以使用如下命令(假设你对目标主文件夹中的所有文件都有权限):
find /home/user_name -name "*.sh" -print0 | xargs -0 chmod u+x
其它的办法 :
find . -name "*.sh" -exec chmod ux+y {} \;
您可以首先使用以下命令检查您的命令
find . -name "*.sh" -print
通过@kabanus 命令
#!/bin/bash
# chmod u+x $(find $1 -name "*.sh")
# ls -1 $1/*.sh
find $1 -name "*.sh" -print -exec chmod u+x {} +
并用作
$ ./script.sh /your_directory
/your_directory
- 脚本中的第一个参数 ( $1
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.