完全なファイル名の記述を避ける方法

完全なファイル名の記述を避ける方法

Linux シェルで、ファイル名またはディレクトリ名の最初の一意の部分を入力し、その後に「~」または「...」を追加して、ファイル名全体を入力せずに済む方法があるかどうか知りたいです。

例えば、私がCDディレクトリへ

example-program-source-0.11.229-dev

書く代わりに

cd example-program-source-0.11.229-dev

そんなことを書いて

cd example-program...

または

cd example-program~

シェルにそのようなものが統合されているはずだと思うのですが、正確に何を検索すればよいのかわかりません。

答え1

ほとんどのシェルは、「タブ補完」と呼ばれる機能をサポートしています。ファイル名の一意の部分を入力して、Tabキーを押すだけです。シェルはファイル名の残りの部分を自動補完します。これまでに入力した内容に一致するファイルがまだ複数ある場合は、シェルは を押すと一致するファイルを順に表示するかTab、 を 2 回押すと一致するすべてのファイルのリストを出力します (Tab設定によって異なります)。Bash はデフォルトで、Tab2 回タップするとリストを出力します。

答え2

*ワイルドカードとして以下を使用できます:

cd example-program*

これは次のように拡張されます。全てワイルドカードに一致するファイル。この場合、 で始まるパスが 1 つしかない場合にのみ使用できますexample-program。 プレフィックスを持つディレクトリが複数ある場合、コマンドは次のように展開されます。

cd example-program-source-0.11.229-dev example-program-other example-program.txt

これは、実際に欲しい複数のファイルを操作するには、たとえば.logフォルダー内のすべてのファイルの内容を表示する場合などです。

cat *.log

関連情報