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

Pet*_*iuk 5 linux unix shell

ls, 给我所有目录

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

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

是否有可能以某种方式合并lscd命令,以便我可以导航到最新目录。逻辑上等于ls -trh | tail -1 | cd,但有效。

Mat*_*hen 10

cd "$(ls -trh | tail -1)"
Run Code Online (Sandbox Code Playgroud)

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

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

cd "$(ls -th | head -1)"
Run Code Online (Sandbox Code Playgroud)

  • 我建议您使用正常排序并使用 head,而不是反向排序和使用 tail。这样它处理的数据更少:`cd $(ls -th | head -n 1)`(我知道 OP 使用了 -r|tail,但我们可以改进) (3认同)