如何让pushd程序显​​示目录缩写

如何让pushd程序显​​示目录缩写

我非常喜欢使用 bash 的 Pushd、popd 和 Dirs 程序集。然而,我经常使用它,以至于目录列表变得很难阅读。

如果我能让 dirs 操作除了默认主目录 ~ 之外还使用别名,那就太好了。例如,如果我在 ~/Documents/MyBaseDir/MyCodeCheckout 的子目录中移动很多,那么而不是...

user1> dirs
~/Documents/MyBaseDir/MyCodeCheckout/src/main/resource, ~/Documents/MyBaseDir/MyCodeCheckout/src/test/java/testdir1

...我想让dirs(以及pushd和popd)显示类似的内容:

user1> dirs
~code1/src/main/resource, ~code1/src/test/java/testdir1

请注意,在这篇文章中,后一个输出甚至不需要滚动条。在典型的命令提示符窗口中,它会显着减少换行,这很难破译。

我最近发现 dirs 命令的 -v 标志,这使得上面的输出看起来像这样:

user1> dirs -v
0  ~/Documents/MyBaseDir/MyCodeCheckout/src/main/resource
1  ~/Documents/MyBaseDir/MyCodeCheckout/src/test/java/testdir1

这就足够了,我可以通过使用以下命令默认获得此行为:

alias dirs='dirs -v'

唯一的缺点是我找不到一种方法让 Pushd 或 Popd 在显示相同列表时使用相同的格式。尽管 bash 文档说在成功完成这两个命令后会执行 dirs 操作,但上面的别名似乎没有扩展到它们的领域。

任何进一步的想法将不胜感激。

相关内容