mirror of
https://github.com/jbranchaud/til
synced 2026-01-03 15:18:01 +00:00
38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# Find Any Dotfiles That Modify Path Env Var
|
|
|
|
Whether you are using `zsh`, `bash`, or some other shell, there are a variety
|
|
of dotfiles where you can place statements to update the `PATH` env var. These
|
|
files don't all run in the same contexts and it can be tricky to debug if one
|
|
is clobbering the path set by another.
|
|
|
|
One way to audit how your `PATH` gets set and track down any issues is to find
|
|
any place where the path may be getting modified in your dotfiles.
|
|
|
|
I like to use [`rg` (ripgrep)](https://github.com/BurntSushi/ripgrep) for tasks
|
|
like this.
|
|
|
|
First, I want to check where the `PATH` is explicitly modified.
|
|
|
|
```bash
|
|
$ rg 'export PATH' ~/\.* --max-depth 0
|
|
```
|
|
|
|
This looks at all instances of dotfiles in my home directory where `export
|
|
PATH` appears. That should catch the majority of ways that it gets updated.
|
|
|
|
Next, because I am using `zsh` as my shell, I want to look for another way my
|
|
path might be set. `zsh` defaults to setting up `path` as proxy for `PATH` that
|
|
acts as an array.
|
|
|
|
I check for any instances of `path=` or `path+=` in my dotfiles:
|
|
|
|
```bash
|
|
$ rg 'path\+?=' ~/\.* --max-depth 0
|
|
```
|
|
|
|
Note that the `--max-depth 0` is really important for both because otherwise a
|
|
ton of irrelevant stuff buried in deeply-nested dot-directories will be
|
|
surfaced.
|
|
|
|
If you want just a file name summary of the results, tack on a `-l` flag.
|