[英]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.