我正在用 C 语言创建一个库,并且每个头文件/源文件都有单独的文件夹。我最近需要进入许多文件夹并更改 .c 和 .h 文件中的一些代码。所以我经常使用以下命令:
nano <some-detailed-filename.c>
nano <some-detailed-filename.h>
我想看看创建一个如下所示的别名:
alias nanc="nano $(ls ./*.c)"
alias nanh="nano $(ls ./*.h)"
这个想法是它将打开当前目录中的任何 .c/.h 文件。但是当我将这些行添加到我的 .zshrc 文件时,我得到以下别名:
# alias nanc
nanc='nano ./xh.c ./yp.c'
# alias nanh
nanh='nano ./xh.h ./yp.h'
这是不希望的,因为 nano 尝试打开的文件仅位于我的主/登录目录中。
我该如何创建这个别名,以便在我发出命令时使用我所在的当前目录?我的搜索不太走运。
最佳答案
不要在作业中使用双引号;使用单引号。如果您使用双引号,该值将立即被替换。
顺便说一下,您的别名还有另一个问题:ls 命令将扩展任何碰巧是目录名称的通配符(目录名称以“.c”结尾是完全合法的)。为了防止由此产生的异常结果,您可能需要使用“-d”选项,例如,
alias nanc='nano $(ls -d ./*.c)'
然而,即使是
ls
也是多余的。这对我有用:alias nanc='nano *.c'
关于linux - 创建动态别名,是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29335941/