使用当前目录设置 unix 别名如何在每个路径上工作
how set unix alias with current directory works on every path
我有这个在“/”目录上工作的别名,但在路径改变时停止工作
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')
它可以正常工作,所以我认为这取决于当前目录 .
尝试:
alias exesh='chmod +x $(find . -maxdepth 1 -name '"'"'*.sh'"'"')'
你的问题是你的蜱虫里面有蜱虫 - '
。刻度和引号 - "
可以自由连接,因此这是在刻度中编码刻度的可靠方法。
我还打算建议使用 find -exec
而不是命令扩展,但我找不到在这种结构中从 find
转义 +
字符的方法。
关于使用 find -exec 的建议我终于解决了我的问题。解决方案是:
alias exesh='find . -name "*.sh" -exec /bin/chmod +x {} \;'
我有这个在“/”目录上工作的别名,但在路径改变时停止工作
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')
它可以正常工作,所以我认为这取决于当前目录 .
尝试:
alias exesh='chmod +x $(find . -maxdepth 1 -name '"'"'*.sh'"'"')'
你的问题是你的蜱虫里面有蜱虫 - '
。刻度和引号 - "
可以自由连接,因此这是在刻度中编码刻度的可靠方法。
我还打算建议使用 find -exec
而不是命令扩展,但我找不到在这种结构中从 find
转义 +
字符的方法。
关于使用 find -exec 的建议我终于解决了我的问题。解决方案是:
alias exesh='find . -name "*.sh" -exec /bin/chmod +x {} \;'