我知道我可以通过 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
。