mirror of
https://github.com/jbranchaud/til
synced 2026-01-10 10:38:01 +00:00
Add Find Any Dotfiles That Modify Path Env Var as a Unix TIL
This commit is contained in:
37
unix/find-any-dotfiles-that-modify-path-env-var.md
Normal file
37
unix/find-any-dotfiles-that-modify-path-env-var.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user