如何在 Unix 中组合 ls 和 cd 命令

如何在 Unix 中组合 ls 和 cd 命令

ls,给我所有目录

ls -trh,给我按日期排序的所有目录(最新的最后)

ls -dtrh */ | tail -1,提供最新目录的名称(按日期)

能否以某种方式合并lscd命令,以便我可以导航到最新目录。从逻辑上讲,这等同于ls -trh | tail -1 | cd,但可以正常工作。

答案1

cd "$(ls -trh | tail -1)"

这将使用 ls|tail 管道的输出作为 cd 的命令行参数。

编辑:camh 是正确的,这应该会提供更好的性能,因为head不会经过你忽略的行。

cd "$(ls -th | head -1)"

答案2

使用反引号的解决方案:

cd`ls-th|head-1`

答案3

我已创建了一个别名供自己使用:

alias cdu='cd $(ls -rtd */ | tail -1)'

这会将您置于您所在位置的上次修改/创建的目录中。

答案4

使用这个简单的命令:

cd `ls -t`

字符 <`> 是反引号。不是撇号。

这将转到最新目录。尝试一下。

相关内容