私のワークスペースには、長いパスで構成された多くのフォルダがあります。たとえば、
|- workspace
|-- this.is.very.long.name.context
|-- this.is.another.long.path.authors
|-- // 20 more folders
|-- this.is.folder.with.too.many.characters.folder
それらはすべて同じステップ(this.is
)で始まります。私の実際のケースでは、長さは20文字で、最後の順序はほとんど異なります。cd
コマンドを使ってすばやく検索する方法はありますか?このような奇妙なキャラクターもありますか?
?
ベストアンサー1
他の人を代用することはできませんが(例zsh
:)、bash
ワイルドカードを使用するとある程度機能します。例:
~ $ ls
Documents
Desktop
Downloads
アスタリスク( )を使用すると、*
次のようになります。
~ $ cd *ments
~/Documents $
bash
これは、コマンドが到着する前に置き換えが行われる可能性があるためですcd
。
複数の一致が有効な場合、cd
動作は未定義であると予想されます。
~ $ cd *s
bash: cd: too many arguments
bash
これをに拡張するcd Documents Downloads
と意味はありませんcd
。
bash
オートコンプリート機能を使用することもできます。あなたの例ではcd t
;を入力すると、クリックすると次のあいまいな文字がTab自動的に完成します。フィルタリングされたセットのすべてのオプションを表示するには、2回目をクリックしてください。cd this.is.
Tab
別の文字を繰り返し入力して範囲を絞り込み、次の Tabあいまいな文字をオートコンプリートし、Tabすべてのオプションを表示できます。
さらに一歩進んで、オートコンプリートbash
でワイルドカードを処理できます。上記の最初のケースでは、入力cd D*s
してクリックしてパターンにTab一致する提案を得ることができます。
~ $ cd D*s
Documents/ Downloads/
~ $ cd D*s
一致する項目が 1 つしかない場合は自動的に完了します。
~ $ cd *loads
~ $ cd Downloads/
ls
問題のディレクトリにあるものが気に入らない場合でも動作します。内容ではなく、ディレクトリ自体-d
がリストされていることを示します。ls
$ ls -d *long*
this.is.very.long.name.context
this.is.another.long.path.authors
find
または、再帰的に表示するには、次のものを使用できます。
$ find workspace -type d -name '*long*'
workspace/this.is.very.long.name.context
workspace/this.is.another.long.path.authors