이 명령의 출력 Linux [닫기]

이 명령의 출력 Linux [닫기]

이 명령의 결과를 아시는 분 계시나요? 검색을 많이 했지만 유용한 정보를 찾을 수 없습니다.

find . -type f -exec grep -H PATH {} \;

미리 감사드립니다

답변1

주문하다

find . -type f -exec grep -H PATH {} \;

-type f현재 디렉터리( ) 또는 다음 디렉터리( ) .에서 모든 일반 파일을 찾고 , 이러한 각 파일에 대해 실행 grep -H PATH {}{} 현재 디렉터리를 기준으로 하는 파일의 전체 경로 이름을 바꿉니다.

이 옵션은 비표준이지만 자주 구현되며 일치하는 각 줄 앞에 해당 줄이 있는 파일의 경로 이름이 붙도록 합니다 -H. 명령을 다음과 같이 변경하여 출력 파일의 경로 이름에 항상 일치하는 행이 포함되도록 할 수 있습니다( 표준 grep에서는 명령줄에 두 개 이상의 파일이 제공될 때 이 작업을 수행합니다).grep PATH /dev/null {}grepgrep

와 함께 사용되는 패턴 grep은 string 입니다 PATH.

요약하자면, 이 명령은 현재 디렉토리 또는 where 부분 문자열을 언급하는 다음 디렉토리의 모든 일반 파일에서 모든 행을 찾아서 출력합니다 PATH. 각 줄에는 해당 줄이 포함된 파일의 경로 이름이 앞에 붙습니다.

내 개인 홈 디렉터리에서 이 명령을 실행할 때 얻은 출력의 일부:

./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_NM:FILEPATH=/usr/bin/nm
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_SKIP_RPATH:BOOL=NO
./Documents/Pathfinder/build/CMakeCache.txt:CMAKE_STRIP:FILEPATH=/usr/bin/strip

grep이 명령은 파일당 한 번이 아니라 한 번에 최대한 많은 파일을 일괄 실행하여 더 효율적으로 만들 수 있습니다.

find . -type f -exec grep -F -e PATH /dev/null {} +

나는 또한 문자열을 다음과 같이 처리하기 위해 여기에 몇 가지 명령을 자유롭게 grep추가 했습니다.-FPATH정규 표현식이 아닌 이 -e옵션은 다음 인수가 패턴임을 나타내는 데에만 사용됩니다(예를 들어 나중에 패턴을 대시로 시작하는 패턴으로 변경하는 경우 유용함).

조건자 인수 끝의 에서 로 변경하면 \;각 경로 이름에 대해 유틸리티를 실행하는 대신 발견된 경로 이름을 일괄 처리로 수집하게 됩니다.+-exec

관련 정보