如何find所有的.sh文件,并使他们可以在Linux中使用bash?

当我启动时我想要传递path到文件夹时find这些.sh文件

我从这开始

#!/bin/bash find /home/user_name -name "*.sh" 

脚本必须在可执行文件的标识列表中写入

直接找到(我已经改正 – 这是最安全和首选的 – 见下面的评论):

 find /home/user -name "*.sh" -execdir chmod u+x {} + 

其他方式 :

 find . -name "*.sh" -exec chmod ux+y {} \; 

你可以先用你的命令检查一下

 find . -name "*.sh" -print 

如果要使当前用户可以执行所有文件,则可以按如下所示使用该命令(假定您拥有目标主文件夹中所有文件的权限):

 find /home/user_name -name "*.sh" -print0 | xargs -0 chmod u+x 

由@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 )。