猜出完整的文件名
我的伺服器上有一些名稱很長的文件,寫完整的名稱有點像皮塔餅,所以我問我的 Linux 系統(Debian 7)是否可以猜出完整的文件名?我想寫類似的東西
rm some_file_1
代替
rm_some_file_1_very_long_information_bla_bla_foo_bar_meow
沒有其他文件,
some_file_1_very_long_information_bla_bla_foo_bar_meow
其名稱包含some_file_1
這就是shell glob的用途(除其他外):
echo some_file_1*
請注意,我正在使用
echo
而不是rm
故意使用。當您滿意您的 glob 與您希望刪除的文件完全匹配時,您可以替換echo
為rm
.
您正在尋找的功能是autocompletion。在 shell 命令行上鍵入文件名的前幾個字元,然後按
Tab
。如果您鍵入的前綴明確,文件名將自動完成。如果有歧義,shell 將至少完成到存在多種可能性的程度。例如,如果有名為
some_file_1
,some_file_2
和的文件some_fiddlesticks
,並且您鍵入some_
然後按Tab
,則插入字元fi
(至少)。根據您的 shell 配置,這可能會選擇一個文件名來完成,而不是僅僅插入fi
,並且如果您Tab
重複按下,行為也會有所不同。自動補全在 bash、zsh、(t)csh 和 fish 以及一些 BusyBox 變體中開箱即用。在大多數 ksh 安裝中,您需要按
Esc
Esc
而不是Tab
.如果您的 shell 沒有完成,您可以使用萬用字元:輸入
rm some_file_1*
刪除所有名稱以 . 開頭的文件some_file_1
。與補全方法相比,這種方法的缺點是對錯別字非常不寬容。例如,如果有另一個以相同前綴開頭的文件,它將被刪除。如果不小心在 前放了一個空格*
,目前目錄下的所有文件都會被刪除。你可以把echo
命令放在前面看看它會做什麼,然後再次執行命令而不echo
執行操作。或者,執行rm -i some_file_1*
以提示輸入每個文件名。