2015-06-10 52 views
2

我已經創建了一個文件夾〜/ bin。這是我自己的bin來存儲我自己的自定義程序。作爲一項測試,我寫了一個簡單的hello世界程序。我使用PATH =〜/ bin:$ PATH導出,以便Linux在該目錄中查找。如果我保存hello(我的測試程序名),我可以通過輸入hello來成功運行它,類似於運行ls,grep等。我希望在我的路徑中包含搜索所有子目錄的方法的bin。 IE瀏覽器。如果我創建了一對夫婦程序,我們可以稱它們爲leapyear和hello來簡化生活,每個程序都在它自己的子目錄中,我可以在$ PATH環境變量中添加一些通用的東西來識別這兩個程序嗎?現在,我非常清楚hello和leapyear並不是真正的系統工具,但它可以用來說明我的目標。我試過/ *包括所有子目錄,但似乎沒有解決。運行定製程序位於/ bin

回答

3

你可以做到這一點通過你的.bashrc,例如,像這樣:

PATH=${PATH}:$(find ~/bin -type d | tr '\n' ':' | sed 's/:$//') 

說明:

  • 我們只搜索目錄
  • 換行符得到與:
  • 最後分離:被刪除

除了像這樣的解決方案之外,PATH除了:之外幾乎不瞭解其他任何東西。

+0

工作完美...感謝您的解釋了。用sed做了很少的事情,所以我不得不做一些小小的CLI測試來理解它,但現在有意義了! – kennedyl

+0

'PATH = $ PATH:$(IFS = :; set〜/ bin/** /; echo「$ *」)'是另一種可能性,因爲爲什麼不。 –

相關問題