找出 $PATH 的定义位置

Raf*_*l T 10 path arch-linux find bashrc

我最近安装了一个 Arch-Linux 系统。如果我输入

echo $PATH
Run Code Online (Sandbox Code Playgroud)

它(除其他外)指向我内部的一个目录,我/home/user/dir记得我在某处设置过。我也有它作为 root 用户,所以它不能~/.bashrc/root/.bashrc. 我也在里面看了看/etc/profile/etc/bash.bashrc但在那里也找不到。

有没有办法找到它的设置位置?

Den*_*nis 8

尝试在 中的所有文件中搜索目录/etc

sudo grep -r "/home/user/dir" /etc
Run Code Online (Sandbox Code Playgroud)

-r开关在其子目录中的所有文件的内容中进行grep搜索。/home/user/dir/etc

grep(1) - Linux 手册页

-d ACTION, --directories =ACTION

如果输入文件是目录,则使用 ACTION 对其进行处理。默认情况下, ACTION 是read,这意味着目录就像普通文件一样被读取。如果 ACTION 是skip,目录将被静默跳过。如果 ACTION 是recurse,grep 会递归读取每个目录下的所有文件;这等效于-r选项。

如果失败,您可以简单地将搜索扩展到所有文件:

sudo grep -r "/home/user/dir" /
Run Code Online (Sandbox Code Playgroud)

或者您可以搜索所有修改PATH变量的文件:

sudo grep -r "PATH=" /
Run Code Online (Sandbox Code Playgroud)