「./」を指定せずに bash ファイルを完成

「./」を指定せずに bash ファイルを完成

CentOS 8の最小インストールを使用しています。

私のホームフォルダに「some_folder」というフォルダがある場合は、コマンドラインから次のことができます。

some <now hit tab, and bash completion resolves to "some_folder">

ただし、ホームフォルダに「my_file」というファイルがある場合は、プロンプトで次のように入力します。

my_ <now hit tab, and NOTHING happens, bash completion does not work>

./my_明らかに、タブ(!?)を押す前に戻って入力する必要があります。フォルダと同じ方法でCentOSでファイルをタップする方法を知っていますか?

答え1

現在のディレクトリがあなたのディレクトリに存在しないか、または存在してはいけません$PATH。したがって、実行可能ファイルを見つけるのに有効な場所ではありません。この例では、my_はコマンドのプレフィックスなので、現在のディレクトリにありません。

my_<tab>

この場合、my_タブ補完で見つけることができる一般的なファイルです。

cat my_<tab>

答え2

前のコマンドがない場合、my_シェルは単にローカルディレクトリの名前を使用しますPATH。デフォルトでは、ベストプラクティスとして、PATH現在のディレクトリはディレクトリにありません。

あなたがこれをしたい場合は、ls my_<TAB>あなたのために行われなければなりません。

答え3

1つの方法は、現在のディレクトリを設定ファイルのPATH環境変数に追加することですが、この方法は意図的に実行せず(./なし)スクリプトを実行できるため危険です。

export PATH="$PATH:."

関連情報