이 명령을 사용하여 특정 문자열이 포함된 디렉터리의 모든 파일을 찾습니다.
grep -lir "string" path_to directory
예
grep -lir "users" /var/www/mysite
이 명령은 'users' 문자열을 포함하는 지정된 디렉터리의 모든 파일을 표시합니다. 그러나 수정 날짜를 기준으로 정렬하고 싶습니다. 최신 것부터 오래된 것까지.
도움이 필요하세요?
답변1
먼저 옵션을 사용한 Z
다음 다른 쪽 끝에서 -0 옵션이 있는 xargs는 파일 이름을 포착하고 통계를 지정하고 타이밍 정보를 정렬 및 제거하여 정렬된 최신 첫 번째 목록을 표시합니다.
grep -Zlir users /var/www/mysite | xargs -0 -r stat --format='%Y+%n' | sort -t+ -k 1,1nr | cut -d+ -f2-
답변2
와 함께 zsh
:
print -rl ./**/*(.De_'grep -qi "string" $REPLY'_om)
이는 다음을 사용합니다.글로벌 한정자(즉, 표현식이 반환 하는 glob 결과)을 .
포함하는 일반 파일( ) 만 선택한 다음 를 통해 최종 결과를 (최신 항목부터) 정렬합니다. 숨겨진 파일을 검색하지 않으려면 제거하십시오 .string
e_'grep -qi "string" $REPLY'_
true
om
mtime
D