이 명령을 사용하여 특정 문자열이 포함된 디렉터리의 모든 파일을 찾습니다.
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)
이는 다음을 사용합니다.글로벌 예선.
포함 된 일반 파일( ) 만 선택한 다음 string
(즉, 표현식 e_'grep -qi "string" $REPLY'_
에서 반환된 전역 결과 true
) om
이를 정렬하여 최종 결과를 정렬합니다 mtime
(최신 항목부터). D
숨겨진 파일을 검색하고 싶지 않다면 삭제하세요.