Linux

bash 文件完成而不指定“./”

  • November 12, 2020

我正在使用 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 以與文件夾相同的方式完成文件的選項卡嗎?

您的目前目錄不在(或不應該)在您的 中$PATH,因此它不是查找執行檔的有效位置。在此範例中,my_是命令的前綴,因此不會在您的目前目錄中找到:

my_<tab>

在這個例子中,my_是一個普通文件,可以通過 tab 補全找到:

cat my_<tab>

如果前面沒有命令my_,則 shell 將僅以本地目錄的名稱或PATH. 預設情況下PATH,出於最佳實踐的原因,目前目錄不在其中。

如果您要這樣做,ls my_<TAB>那麼它應該為您完成。

引用自:https://unix.stackexchange.com/questions/619283