Command-Line

如何檢查 $PATH 中的重複命令?

  • January 7, 2021

例如,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

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