PATHにパスが追加されたファイルを追跡する方法は?

PATHにパスが追加されたファイルを追跡する方法は?

PATH私の環境変数に不要なパスが追加されました。

犯人をどのように見つけることができますか?

私はすでに見ました:

  • ~/.bashrc
  • ~/.bash_profile
  • /etc/bashrc
  • /etc/設定ファイル
  • /etc/環境

答え1

これはおそらく過剰である可能性があり、スクリプトを実行する順序を追跡して(もちろん)見つけることを試みる必要がありますが、時々ツリーを解析するのは困難です。したがって、簡単にgrepして見つけることができます。

grep --regexp='PATH=.*/path/that/you/try/to/find' --binary-files=without-match -r /

これは非常に長いプロセスであり、プロセス全体の間にハードドライブが正しく機能しないことに注意してください(基本的に持っているすべてのテキストファイルを読みます)。

答え2

努力する:

grep -rF --binary-files=without-match ':/the/undesired/path' / 2> /dev/null

または、/the/undesired/pathこれは$UNKNOWN_VARIABLE_NAME_FOR_THE_UNDESIRED_PATH明らかに動作しません。

/home/user/undesired/pathこれは通常として指定されます$HOME/undesired/path

:変数の割り当てを取得せずに同じタスクを実行します。

grep -rF --binary-files=without-match '/the/undesired/path' / 2> /dev/null

それでも問題が解決しない場合は、すべてのPATHタスクを見つけて手動でフィルタリングしてください。

grep -rwF --binary-files=without-match 'PATH=' / 2> /dev/null

答え3

findそして個々にファイルを見つけて検索するには、各ファイルのページをxargs参照してください。man

sudo find / -type f -print0 | \
   xargs -0 --no-run-if-empty \
       grep -l 'PATH'

PATHを参照するすべてのファイル名をリストします。追加

| xargs less

ファイルを見る。

わかる限り/some/deep/path/binで表現できるので検索できません。$SDP/bin

関連情報