You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何一次性创建文件并设置可执行权限,无需重复输入文件名?

一次性创建可执行文件的几种方法

方法1:定义Shell函数(推荐)

直接在当前Shell里定义一个函数,后续使用最省心:

mkexe() { touch "$1" && chmod +x "$1"; }

使用时只需输入 mkexe 目标文件名,比如 mkexe demo.sh。下次要换文件名,直接调出历史命令修改末尾的文件名即可。如果想让这个函数永久生效,把它添加到你的 ~/.bashrc(Bash环境)或 ~/.zshrc(Zsh环境)文件中,之后重启Shell或执行 source ~/.bashrc 就能全局使用。

方法2:单条临时命令(无需定义函数)

如果不想定义函数,用这条命令即可,文件名放在最后,方便后续修改:

echo "目标文件名" | xargs -I {} sh -c 'touch {} && chmod +x {}'

比如创建 test.sh 就输入 echo "test.sh" | xargs -I {} sh -c 'touch {} && chmod +x {}',下次换文件只需修改引号里的内容。

方法3:临时变量法

用临时变量存储文件名,只需要输入一次:

f="目标文件名"; touch "$f" && chmod +x "$f"

修改时直接更改等号后的文件名即可。

你之前的命令失效原因

你尝试的 touch "$(echo foo && chmod +x !$)" 里,!$ 指代的是上一条Shell命令的最后一个参数,并非当前 echo foo 中的文件名,所以chmod无法找到正确的目标文件;同时整个命令的执行逻辑顺序错误,导致无法完成预期操作。

内容的提问来源于stack exchange,提问作者qq4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:42:23