添加 ./bin 是個壞主意
我想不出任何理由為什麼添加
./bin
到我的PATH
環境中會是一個非常糟糕的主意。我通常
bin
在我正在工作的項目中創建文件夾,我討厭這樣做,只要我在帶有文件夾的目錄中並且該文件夾包含執行檔bin/command
,就可以被 bash 拾取。command``bin``bin``command
我需要說服力:D
和通常
$HOME/bin
被視為安全風險.
。./bin
因為
$HOME/bin
這是一些“破解者”將一些腳本(比如名為 nano 的腳本)推送到該目錄的問題,然後它會等到您執行類似sudo nano /etc/hosts
獲得即時 root 訪問權限的東西(將 nano 更改為 vi、emacs 等等;命令不重要,它是它可以執行的有效負載)。對於
.
and./bin
,它仍然是同樣的問題:添加一個從錯誤目錄工作的額外程序。如果這些 ./bin/command 位於不同的目錄而不是 /usr/local/bin (新的本地腳本的首選解決方案),那是因為它們做不同的事情;如果你跑錯了怎麼辦?
如果您以相同的方式命名命令(讓我們呼叫然後更新、送出、清理等),您可能正在處理一個目錄,然後您接到一個電話並切換到另一個電話以進行快速檢查。掛斷後,你的大腦會嘗試恢復你正在做的事情,並且大多數時候會忘記你所做的快速“cd”(特別是如果螢幕上的所有內容似乎都指向正確的目錄)並完成執行錯誤的命令目錄(比如說那個清除你一個月工作的清理腳本)。
這可能看起來是一個無辜的錯誤,但它們每天都發生在很多人身上!:)
一個好的解決方法(或更好的解決方案)是使用別名:
alias proj1-cleanup=/srv/proj1/bin/cleanup
並在腳本上添加正確
cd
的內容以確保它在正確的目錄上執行。這樣,使用
$HOME/.alias
添加您需要的各種腳本,您可以使用不同的命令來執行不同的操作,即使有人破解您的瀏覽器以創建$HOME/bin/ls
文件或某些本地使用者在任何目錄上創建 bin/ls 文件,那些永遠不會執行,因為您的路徑仍然指向正確的命令。但是,嘿,這是個人選擇;你是知道你的本地風險是什麼以及命令做什麼的人。