排序后如何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 切换到目录
我有一个文件夹,里面有目录
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 切换到目录