我有这个别名适用于" /"目录但在路径更改时停止工作
alias exesh='chmod +x $(find . -maxdepth 1 -name '*.sh')'
我是Unix的新手,所以欢迎任何帮助
*我使用cygwin,如果这可能是问题*
Bash,关于这个问题,我说这个
find: paths must precede expression: 2b.sh
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
chmod: missing operand after '+x'
Try 'chmod --help' for more information.
但如果我粘贴在命令行chmod +x $(find . -maxdepth 1 -name '*.sh')
上它可以正常工作,所以我认为它取决于当前目录.
答案 0 :(得分:0)
尝试:
alias exesh='chmod +x $(find . -maxdepth 1 -name '"'"'*.sh'"'"')'
你的问题是你的蜱内有{ - 1}}。刻度和引号 - '
可以自由连接,因此这是在刻度内编码刻度的可靠方法。
我还建议使用"
而不是命令扩展,但在这样的构造中我找不到从find -exec
转义+
字符的方法。
答案 1 :(得分:0)
建议使用find -exec我终于解决了我的问题。解决方案是:
alias exesh='find . -name "*.sh" -exec /bin/chmod +x {} \;'