排序后如何cd到第一个目录

How to cd into the first directory after sorting

我有一个文件夹,里面有目录

ABC_1
ABC_2
ABC_3
ABC_4
ABC_5
Test
XYZ

我想按日期排序,删除名称中不包含ABC的目录并cd到第一个目录。

我试过了

cd $(/bin/ls -t1 | head -n 1)

这是行不通的。 任何帮助将不胜感激
谢谢

cd "$(/bin/ls -t1 | grep ABC | head -n 1)"

这将列出 个目录并过滤掉任何不以 ABC_:

开头的文件夹
cd "$(ls -t1 -d */ |grep  "^ABC_" |head -n1)"

更新:

其实你不需要grep

cd "$(ls -t1 -d ABC_*/ | head -n1)"

发布者想要列表后的第一个结果,而不是根据修改时间的第一个结果,因此不需要“-t”选项。

您还必须确保您只提取目录而不是文件。

这会做你想做的事:

cd $(ls -d [^ABC]*/ | head -n 1)
  • $() 运行 命令
  • ls -d 搜索目录
  • [^ABC]/ 不包括任何以 ABC
  • 开头的目录
  • head -n 1 return第一个条目
  • cd 切换到目录