使用 autocd 更改路径后自动运行 ls

bri*_*out 8 command-line bash zsh ls

因此,每次更改目录时,我都希望新路径自动以ls.
如果使用更改路径,有一些解决方案,cd但我从未找到可以在使用该autocd选项更改路径时工作的解决方案。

会很方便,以前有人实现过吗?

ste*_*ert 5

您可以通过更改PROMPT_COMMAND在 PS1 之前执行的变量来实现这一点,例如:

PROMPT_COMMAND='ls'
Run Code Online (Sandbox Code Playgroud)

这将在您每次收到新提示时列出。当然你只想ls在目录改变时执行:

PROMPT_COMMAND='[[ $my_currdir != $PWD ]] && ls; my_currdir=$PWD'
Run Code Online (Sandbox Code Playgroud)

这会检查新目录是否与上一组不同,然后执行ls,之后您的当前目录存储在my_currdir

我在这里找到了更好的一行,他们使用bash 作为文件管理器

PROMPT_COMMAND='[[ ${__new_wd:=$PWD} != $PWD ]] && list; __new_wd=$PWD'
Run Code Online (Sandbox Code Playgroud)

由于可能__new_wd未设置,您可以分配一个默认值,该值将在这种情况下使用(请参阅bash手册页,搜索:=