Command-Line
如何檢查 $PATH 中的重複命令?
例如,youtube-dl 有不同的方式將其安裝到機器上。我無意中以不同的方式下載/安裝了它多次,結果我的 $PATH 目錄中有幾個 youtube-dl 執行檔
/usr/local/bin/youtube-dl
,/home/username/.local/bin/youtube-dl
, 和/usr/local/bin/youtube-dl
. 因此,即使我安裝了升級版本“2021.01.03”,也youtube-dl --version
顯示了“2020.07.28”,因為 $PATH 中其他目錄中的 youtube-dl 以某種方式覆蓋了它。所以在這裡,我想檢查 $PATH 中所有已安裝的同名文件,這樣我就可以立即檢查它們的版本,並且可以查看哪個是最新的、目前的以及應該刪除哪個。那麼,有沒有辦法或 CLI 工具來做到這一點?謝謝。
互動式地,我會使用:
ls -l $(type -ap youtube-dl)
youtube-dl
在我的 $PATH中查找所有程序的位置和時間戳。當然,這不適用於名稱中包含空格但
youtube-dl
不是其中之一的執行檔。
為了按順序訪問 PATH 目錄並列出將要執行的文件的位置,您可以使用以下
which
命令:$ which -a command_name