繁体   English   中英

我如何获得上一个命令的最后一个参数的`dirname`?

[英]How do i get the `dirname` of last argument of previous command?

我经常遇到以下情况:

mv picture /very/long/path/favicon.ico
cd !$

第二个命令失败(如预期的那样),因为!$ Not a directory 是否有一些bash历史替代魔术将我带到/very/long/path

!$:h完全满足要求:

mv picture /very/long/path/favicon.ico
cd !$:h

资料来源: man bash ,寻找trailing filename的字符串。

您可以改为使用$_ ,它扩展为最后执行的命令的最后一个参数。 然后,执行简单的参数扩展以删除最后一个/之后的部分即可:

${_%/*}

所以:

cd "${_%/*}"

您可以使用这种方法来获取最后一个命令,问题是您想使用它做什么。 获取bash历史记录

使用dirname命令有一种简单的方法

cd $(dirname !$);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM