Bash:如何进入最近修改的子目录?

Bash:如何进入最近修改的子目录?

我知道我可以通过 ls -ltr 找到最近修改的目录,但最后修改的项目可能是文件,而不是目录。其次,我仍然必须输入目录名称。我的目录名称就像一个哈希码,不太好读,每次输入都很麻烦。

有什么简单的方法可以做到这一点吗?

答案1

cd "$(ls -dt */ | head -1)"

将其保存为别名~/.bashrc,例如

alias lcd='cd -- "$(ls -dt -- */ | head -1)"'

现在lcd在任何目录中都会更改为当前目录中最近更改的目录。

答案2

~/.bashrc为我的作品添加此功能

function lcd(){
cd $(ls -v1td --color=never */ | head -1)
}

如果我尝试将其定义为别名,则在 shell 启动时,表达式会被求值一次,并且始终尝试 cd 到我的主目录中的同一子目录。如果没有该语句--color=never,我会收到另一条评论中提到的错误-bash: cd: mydir/: No such file or directory

相关内容