如何在不输入名称的情况下 cd 进入第一个可用文件夹?

Ari*_*osh 36 command-line

我最近陷入了一个困境,我在一个文件夹中,我想要cd一个子目录文件夹。只有一个文件夹,在这个文件夹里面,而且是一个很长的名字。

Home (I am here)
 |
 |
  --> /reallylongnamefolder
Run Code Online (Sandbox Code Playgroud)

有没有办法进入该文件夹而不是输入:

 cd reallylongnamefolder
Run Code Online (Sandbox Code Playgroud)

mas*_*lma 39

我建议要么输入前几个字母,然后按tab. Bash 具有非常有用的自动完成功能。如果它只是当前路径中的目录,只需按下tab将填充整个目录。

输入cd并按tab两次将显示当前目录中的所有选项。

tab 通常在 bash 中非常有用,因为您可以通过一两次按键访问几乎所有的可执行文件。

cd *如上所述,仅当目录位​​于列表中且未隐藏时才有效。如果在您的目录之前按字母顺序排列文件,cd则根本不会更改您的目录。

  • 如果只有一个目录,您甚至根本不需要键入任何字母:`cd <tab>` 就足够智能了。 (15认同)

Ari*_*osh 20

我想我真的想通了

cd * 
cd */
Run Code Online (Sandbox Code Playgroud)

但是如果有多个文件和一个文件夹,我还没有测试过!


正如@Rinzwind在评论中提到的那样!

假设您有三个长文件夹:

 /thisislongfolder1
 /thisislongfolder2
 /thisislongfolder3
Run Code Online (Sandbox Code Playgroud)

如果你输入文件的第一个字母,然后点击tab它会自动完成文件名!疯狂的事情!

所以在上面的例子中,你可以输入:t tab,它会尽可能多地自动完成:(cd thisislongfolder然后自己输入数字)。

或者你可以做cd t*1将带你进入thisislongfolder1

谢谢林兹温德!

  • cd first_letter_or_some_letters 然后 {tab} 是最简单的(也解决了你的很多文件夹的问题。你甚至可以混合超过1个标签和字母的字母。系统会尽可能地自动完成。你也可以这样做` cd r*r` 并希望它是唯一以 r 开头和结尾的文件夹。 (6认同)
  • `cd */` 可能会解决问题 (5认同)
  • `cd *` 失败的次数可能多于成功的次数。 (3认同)

use*_*205 18

cd $(ls -d */|head -n 1)
Run Code Online (Sandbox Code Playgroud)

ls -d */列出目录,head -n 1给出此列表中的第一个。

  • @tomsmeding 如果您正在编写需要将`cd` 放到第一个目录的脚本,则不能执行制表符。 (3认同)