名前を入力せずに、最初に使用可能なフォルダーにcdするにはどうすればよいですか?


30

私は最近、フォルダ内にいる苦境にありcd、サブディレクトリフォルダに行きたいと思っていました。このフォルダー内にはフォルダーが1つだけあり、それは本当に長い名前でした。

Home (I am here)
 |
 |
  --> /reallylongnamefolder

入力する代わりにそのフォルダに入る方法はありますか?

 cd reallylongnamefolder

1
多くの方法:cd */またはcd rea*/、サブディレクトリが常に1つしかない場合(bashを使用する場合cd rea[TAB]、他のシェルでも.. を使用できますが、名前を展開する方法は異なる場合があります)。「/ reallylongnamefolder」が絶対パスである場合、同じことですが、たとえば「/」を前に付けます。例:cd /rea*/
Olivier Dulac 14

回答:


38

最初の数文字を入力してを押すようアドバイスしますtab。Bashには、非常に便利なオートコンプリート機能があります。現在のパスにあるディレクトリのみの場合、押すだけでディレクトリtab全体が埋められます。

入力しcdtab2回押すと、現在のディレクトリのすべてのオプションが表示されます。

tab 1回または2回のキー押下でほとんどすべての実行可能ファイルにアクセスできるため、bashでは一般に非常に便利です。

cd *上記のように機能するのは、ディレクトリがリストの最初にあり、非表示になっていない場合のみです。ディレクトリの前にアルファベット順でファイルがある場合、ディレクトリcdはまったく変更されません。


15
ディレクトリが1つしかない場合は、文字を入力する必要さえありませんcd <tab>。十分にスマートです。
アマロイ

1
Windowsでも動作します。(グーグルから来た人のため。)
コライトゥゲイ14

16

私は実際に実際にそれを理解したと思う

cd * 
cd */

ただし、複数のファイルと1つのフォルダーがある場合はテストしていません。


@Rinzwindはコメントで述べました!

3つの長いフォルダーがあるとします。

 /thisislongfolder1
 /thisislongfolder2
 /thisislongfolder3

ファイルの最初の文字を入力すると、ヒットtabするとファイル名が自動補完されます!バカバカしく!

したがって、上記の例では、次のように入力できます。可能t tabな限りオートコンプリートされますcd thisislongfolder(その後、自分で番号を入力します)。

またはあなたをすることcd t*1ができますthisislongfolder1

ありがとう、Rinzwind!


6
CDのfirst_letter_or_some_letters、その後{タブ}が最も簡単です(また、フォルダの多くの問題を解決します。あなたができる以上の[1]タブの文字でさえ混合手紙を。システムの意志オートコンプリート限りそれができるよう。あなたはも行うことができますcd r*rし、それは始まったばかりであり、rで終わるフォルダであると思います。
Rinzwind

@Rinzwindすごい!知らなかった!ありがとう!
アリアンフォールトッシュ14

やってみて。結果を回答に追加すると、おそらく評判が得られます
;

4
cd */トリック行う可能性があります
gniourf_gniourf

3
cd *おそらく、成功するよりも頻繁に失敗します。
デビッドリチャービー14

14
cd $(ls -d */|head -n 1)

ls -d */ディレクトリをリストし、head -n 1このリストの最初のディレクトリを提供します。


ええ、あなたはそれをタイプするつもりです...私はむしろこれをタイプするよりもタブタブに行って名前を調べたいです。しかし、それは100%正しい、いい答えです!
tomsmeding

1
@tomsmeding cd最初のディレクトリに必要なスクリプトを書いている場合、タブを実行できません。
user12205 14

-n 1は、ファイルの最後の1ファイルを示します。これを変数の順序に使用する場合は、cd $(ls -d -1 * / | sed -n '4p')を使用して、ディレクトリ内の4番目のフォルダーを開きます。エイリアスに追加すると、フォルダナビゲーションがより高速になります。
イヴァンIvković18年

2

これには素晴らしいセットアップがあり、〜/ somereallylongfoldernameにcdするだけでなく、/フォルダーにいてもそこにcdすることができます

私が最初に使用するのはoh-my-zshを使用したzshです。これにより、大文字小文字を気にせずに、またはcdと入力しなくてもcdできます

  1. gitおよびzshをインストールします
sudo apt-get install zsh git
  1. Oh My ZSHをインストールする

curl -L http://install.ohmyz.sh | sh

  1. デフォルトのシェルをZSHに変更します
chsh -s /bin/zsh

ホームフォルダーにある.zshrcを開いて編集します。非表示ではありません

nano〜/ .zshrc

次に、ファイルの最後に次の行を追加します export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/

私のテーマが気に入ったら、行#ZSH_THEME="robbyrussell"を次のように変更することもできますZSH_THEME="pygmalion"

ファイルを保存して閉じ、再起動します。シェルを閉じて再度開くか、新しいタブを開いて試してください

タブキーを使用して名前を完成させることはできません。ZSHでは、大文字と小文字を正しく入力する必要はありません。docuと入力してタブを押すと、〜/ Documentsに変わります

ここに画像の説明を入力してください


0

iノード番号でディレクトリを変更できます。
最初にでiノードを見つけますls -il
それから

cd $(find -inum directory_inode_number)

0

スクリプトで実行する必要がある場合、またはデコードできない名前のディレクトリをサポートする必要がある場合:

cd $(python -c $'import os\nfor entry in os.listdir(b"."):\n if os.path.isdir(entry):\n  os.write(1, entry);break\nelse: os.write(1, b".")')

ディレクトリに相対的なソート順に関係なく、ディレクトリにファイルがある場合に機能します。失敗し
cd */場合、隠しディレクトリに対して機能します。
名前の代わりにls印刷のみを行う場合、現在のロケールで名前が表現できない場合に機能します??


0

エースの答えを拡張する:

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

ディレクトリ内の最初のフォルダを開きます。2番目のディレクトリでは、「1p」を「2p」に変更できます。

ls -d -1 -la */

親ディレクトリのディレクトリのみをリストします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.