如何将unix别名与当前目录一起设置在每个路径上

时间:2015-05-07 16:28:01

标签: unix path find cygwin alias

我有这个别名适用于" /"目录但在路径更改时停止工作

    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')上它可以正常工作,所以我认为它取决于当前目录.

2 个答案:

答案 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 {} \;'