
我最近安裝了一個 Arch-Linux 系統。如果我輸入
echo $PATH
/home/user/dir
它指向(除其他外)我記得我在某處設置的目錄。我也以 root 使用者身分擁有它,所以它不能~/.bashrc
在/root/.bashrc
.我也向裡面看了看/etc/profile
,/etc/bash.bashrc
但也沒有在那裡找到它。
有沒有辦法找到它的設定位置?
答案1
嘗試在以下位置的所有檔案中搜尋該目錄/etc
:
sudo grep -r "/home/user/dir" /etc
此-r
開關使grep
搜索/home/user/dir
內容/etc
及其子目錄中的所有檔案。
-d行動,--目錄=行動
如果輸入檔是目錄,則使用 ACTION 處理。預設情況下,ACTION 是讀,這意味著目錄的讀取就像普通文件一樣。如果行動是跳過,目錄會被默默地跳過。如果行動是遞迴、grep 遞歸讀取每個目錄下的所有檔案;這相當於-r選項。
如果失敗,您可以簡單地將搜尋擴展到全部文件:
sudo grep -r "/home/user/dir" /
或者您可以搜尋修改該PATH
變數的所有檔案:
sudo grep -r "PATH=" /
答案2
將使用者目錄作為 root 放在全域路徑中通常是一個壞主意;)您檢查過該/etc/environment
檔案嗎?
答案3
@Dennis 給我指出了一個好主意!我在我的內部搜尋/etc
並找到了它,但是使用了另一個命令,因為他的命令僅搜尋檔案名稱(據我所知)。
我使用成功的一個是
find / -type f -exec grep -i /home/user/dir '{}' \; -print
答案4
如果您正在深入尋找 PATH 中定義的某些內容,您可以嘗試使用此替代方法銀色搜尋者用於快速搜尋。
預設情況下,它輸出與行號相符的內容,因此與 結合起來egrep
僅取得檔案名稱的輸出。如果您不想重複,它還會輸出包含匹配項的行號,以便cut
隔離檔案名稱。uniq
當然,如果您不想完整輸出匹配項,則可以省略任何管道命令。
ag -s '/home/user/dir' | egrep '^\d+' | cut -d ':' -f 1 | uniq