如何cd进入目录中的第二个文件夹?

如何cd进入目录中的第二个文件夹?

如何cd进入目录中的第二个文件夹?

语境

我所在的目录中有 3 个文件夹。执行后,ls -1它们的顺序如下。

folder1
folder2
folder3

我想快速cd进入folder2

我可以编写一个函数来快速cd进入folder1

这是我的职责。

f1 () {
       cd $(ls -d */|head -n 1)
}

问题

我需要一个名为 的函数f2。执行后,cd它将变成folder2

(文件夹按 排序ls -1。我正在使用zsh

答案1

尝试:

cd $(ls -d */| sed -n 2p)

-n告诉sed它默认不要打印任何内容,并2p告诉它打印第 2 行。

答案2

获得第二行最简单的方法是

ls -d */|head -2|tail -1

首先得到上面两行,然后是最后一行

问题是,如果你只有一个文件夹,你就会得到它,而不是第二个

答案3

不需要额外流程的事情:

dirs=( */ )
cd "${dirs[3]}"  # 0-based

相关内容