获取上次使用参数的父级的 Bash 快捷方式

标签 bash

在我的工作流程中,我经常这样做:

cat this/very/long/filename.txt
cd !$
bash: cd: this/very/long/filename.txt: Not a directory

这是意料之中的:(

现在我恢复上一个命令,手动删除文件部分,然后重复 cd,现在可以正常工作了。那是打字太多了!

如果有一个 bash 快捷方式就好了:

cd !§

这可以给我上次使用的参数的父级。我知道 不存在,我只是希望它存在!有什么可以满足的吗?

最佳答案

Et voilà。历史修改器来拯救!

$ cd !!:$:h

可以缩写为

$ cd !$:h

此命令采用上一个命令的最后一个参数,并删除尾随路径名

更多细节:

  1. !! 扩展为上一个命令
  2. :$ 扩展为上一个命令的最后一个参数
  3. :h 获取header;也就是说,删除文件名(即上述最后一个参数的尾部)

顺便说一句,

!!:$:t

恰恰相反。

深入讨论请引用the Bash documentation .

关于获取上次使用参数的父级的 Bash 快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25038557/

相关文章:

node.js - 在 Node 模块中搜索包含 with 语句的 javascript 文件?

bash - 通过脚本从挂载共享驱动器复制到本地文件夹

bash - 如果任务失败发送电子邮件

regex - 无法使用 sed/regex 删除字符串中的最后一个字符

python - 可以让 Python 生成类似于 bash 的 set -x 的跟踪吗?

python - sys.path 与 $PATH

linux - Shell 脚本 - Linux - 列出空目录

Linux 重命名带有时间戳的文件

bash - 如何从 URL 为 "localhost:3000"的终端打开 Google Chrome?

linux - 混淆输出重定向到 2>&1?