私は最近、フォルダ内にいる苦境にありcd、サブディレクトリフォルダに行きたいと思っていました。このフォルダー内にはフォルダーが1つだけあり、それは本当に長い名前でした。
Home (I am here)
|
|
--> /reallylongnamefolder
入力する代わりにそのフォルダに入る方法はありますか?
cd reallylongnamefolder
私は最近、フォルダ内にいる苦境にありcd、サブディレクトリフォルダに行きたいと思っていました。このフォルダー内にはフォルダーが1つだけあり、それは本当に長い名前でした。
Home (I am here)
|
|
--> /reallylongnamefolder
入力する代わりにそのフォルダに入る方法はありますか?
cd reallylongnamefolder
回答:
最初の数文字を入力してを押すようアドバイスしますtab。Bashには、非常に便利なオートコンプリート機能があります。現在のパスにあるディレクトリのみの場合、押すだけでディレクトリtab全体が埋められます。
入力しcdてtab2回押すと、現在のディレクトリのすべてのオプションが表示されます。
tab 1回または2回のキー押下でほとんどすべての実行可能ファイルにアクセスできるため、bashでは一般に非常に便利です。
cd *上記のように機能するのは、ディレクトリがリストの最初にあり、非表示になっていない場合のみです。ディレクトリの前にアルファベット順でファイルがある場合、ディレクトリcdはまったく変更されません。
cd <tab>。十分にスマートです。
私は実際に実際にそれを理解したと思う
cd *
cd */
ただし、複数のファイルと1つのフォルダーがある場合はテストしていません。
@Rinzwindはコメントで述べました!
3つの長いフォルダーがあるとします。
/thisislongfolder1
/thisislongfolder2
/thisislongfolder3
ファイルの最初の文字を入力すると、ヒットtabするとファイル名が自動補完されます!バカバカしく!
したがって、上記の例では、次のように入力できます。可能t tabな限りオートコンプリートされますcd thisislongfolder(その後、自分で番号を入力します)。
またはあなたをすることcd t*1ができますthisislongfolder1
ありがとう、Rinzwind!
cd r*rし、それは始まったばかりであり、rで終わるフォルダであると思います。
cd */トリック行う可能性があります
cd *おそらく、成功するよりも頻繁に失敗します。
cd $(ls -d */|head -n 1)
ls -d */ディレクトリをリストし、head -n 1このリストの最初のディレクトリを提供します。
cd最初のディレクトリに必要なスクリプトを書いている場合、タブを実行できません。
これには素晴らしいセットアップがあり、〜/ somereallylongfoldernameにcdするだけでなく、/フォルダーにいてもそこにcdすることができます
私が最初に使用するのはoh-my-zshを使用したzshです。これにより、大文字小文字を気にせずに、またはcdと入力しなくてもcdできます
sudo apt-get install zsh git
curl -L http://install.ohmyz.sh | sh
chsh -s /bin/zsh
ホームフォルダーにある.zshrcを開いて編集します。非表示ではありません
nano〜/ .zshrc
次に、ファイルの最後に次の行を追加します
export CDPATH=$CDPATH:/:/home/$USER/:/media/$USER/
私のテーマが気に入ったら、行#ZSH_THEME="robbyrussell"を次のように変更することもできますZSH_THEME="pygmalion"
ファイルを保存して閉じ、再起動します。シェルを閉じて再度開くか、新しいタブを開いて試してください
タブキーを使用して名前を完成させることはできません。ZSHでは、大文字と小文字を正しく入力する必要はありません。docuと入力してタブを押すと、〜/ Documentsに変わります

iノード番号でディレクトリを変更できます。
最初にでiノードを見つけますls -il。
それから
cd $(find -inum directory_inode_number)
スクリプトで実行する必要がある場合、またはデコードできない名前のディレクトリをサポートする必要がある場合:
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印刷のみを行う場合、現在のロケールで名前が表現できない場合に機能します??。
cd */またはcd rea*/、サブディレクトリが常に1つしかない場合(bashを使用する場合cd rea[TAB]、他のシェルでも.. を使用できますが、名前を展開する方法は異なる場合があります)。「/ reallylongnamefolder」が絶対パスである場合、同じことですが、たとえば「/」を前に付けます。例:cd /rea*/