Vic*_*Dev 4 command-line bash cd-command command-substitution
我找不到whereis将cd命令的输出传递给同一行中的命令的方法,因此我不必cd在第二步中执行此操作。
我试过像下面这样传递:
cd $(whereis node_modules)
Run Code Online (Sandbox Code Playgroud)
或者
cd "`dirname $(whereis node_modules)`"
Run Code Online (Sandbox Code Playgroud)
还
cd "$(whereis node_modules)"
Run Code Online (Sandbox Code Playgroud)
但上述方法均无效。
有人能找到上面代码中应该有什么问题吗?
这似乎可以解决问题:
cd "$(dirname "$(whereis node_modules)")"
Run Code Online (Sandbox Code Playgroud)
如果根据您的评论,您想进入目标(如果它是一个目录):
location=$(whereis node_modules)
if [[ -d "$location" ]]; then
cd "$location"
else
cd "$(dirname "$location" )"
fi
Run Code Online (Sandbox Code Playgroud)
上述内容可以很容易地在您的.bash_profile.
你可以这样做,
cd "`which node_modules`"
Run Code Online (Sandbox Code Playgroud)
随着dirname获得的目录:
cd "$(dirname "$(which node_modules)" )"
Run Code Online (Sandbox Code Playgroud)
正如您在评论中提到的,我希望在一个步骤中执行此操作并假设nod_module是一个目录,因此您可以使用以下命令执行此操作:
cd $(whereis node_modules | cut -d ' ' -f2)
Run Code Online (Sandbox Code Playgroud)
(请注意,后一个命令假定使用的是 Linux whereis,而不是 BSD,并且路径不包含任何空格。)
正如@Dani_I 所建议的,你可以看看这个Why not use "which"?那用什么?,这可能更有用。
| 归档时间: |
|
| 查看次数: |
2904 次 |
| 最近记录: |