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

관련 정보