执行递归 chmod 以使目录中的所有 .sh 文件可执行的命令?

Aru*_*ava 28 command-line chmod executable sh

尝试对目录中的所有 .sh 文件执行递归 chmod 以使它们可执行

Geo*_*sen 42

为了使这成为可能,您可以使用该find命令并搜索所有带有.sh扩展名的文件,然后chmod对找到的每个文件运行该命令:

find /directory/of/interest/ -type f -iname "*.sh" -exec chmod +x {} \;
Run Code Online (Sandbox Code Playgroud)

信息:

  1. -type f: 仅普通文件(跳过目录、符号链接、命名管道和套接字以及 /dev 中的特殊文件)
  2. -iname: 忽略名称中的大小写
  3. "*.sh": Globbing,告诉find命令搜索带有“.sh”扩展名的文件
  4. -exec chmod +x {}:这告诉命令对每个找到的文件find执行chmod命令。制作每个可执行文件
  5. \;: 指示命令结束

  • 我认为你可以用 `+` 结束你的 find 命令以最小化执行次数(参见用 `\;` 和 `+` 终止 exec 之间的区别)。 (2认同)