Bash xargs-doens';无法理解升华文本的subl别名

Bash xargs-doens';无法理解升华文本的subl别名,bash,sublimetext,xargs,Bash,Sublimetext,Xargs,我在windows上使用GitBash,我的bash配置文件中有: alias subl='/c/Program\Files/Sublime\Text\2/Sublime\u Text.exe' 我可以轻松打开文件: $ touch foo.txt $ subl !$ 。。。它起作用了 但是,在使用xargs时,我无法将文件作为参数导入subl: $ git grep -l "internal interface" | xargs subl xargs: subl: No such file

我在windows上使用GitBash,我的bash配置文件中有:

alias subl='/c/Program\Files/Sublime\Text\2/Sublime\u Text.exe'

我可以轻松打开文件:

$ touch foo.txt 
$ subl !$
。。。它起作用了

但是,在使用xargs时,我无法将文件作为参数导入subl:

$ git grep -l "internal interface" | xargs subl
xargs: subl: No such file or directory
其他文本编辑器也可以工作:

$ git grep -l "internal interface" | xargs code  # VsCode
xargs
也找不到完整的绝对路径:

$ git grep -l "internal interface" | xargs '/c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe'
xargs: /c/Program\ Files/Sublime\ Text\ 2/sublime_text.exe: No such file or directory

*此操作在此计算机上的任何驱动器/卷上都会失败。

仅尝试对命令的第一个字进行别名扩展。这是否意味着此操作仍会失败
$git grep-l“internal interface”| xargs'/c/Program\Files/subgrame\Text\2/subgrame\u Text.exe'
您能试着在上一个命令中删除反斜杠吗?因为字符串是单引号,所以反斜杠是文字。
xargs
不使用shell来运行命令,而是shell扩展别名。您不能向
路径添加升华,而不是别名吗?或者,如果您不喜欢
sublime_text.exe
,请将其符号链接到
~/bin/subl
,并确保
~/bin
位于您的
路径中?