문자열이 포함된 파일을 검색하고 수정된 날짜별로 정렬된 이름을 나열합니다.

문자열이 포함된 파일을 검색하고 수정된 날짜별로 정렬된 이름을 나열합니다.

이 명령을 사용하여 특정 문자열이 포함된 디렉터리의 모든 파일을 찾습니다.

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 결과)을 .포함하는 일반 파일( ) 만 선택한 다음 를 통해 최종 결과를 (최신 항목부터) 정렬합니다. 숨겨진 파일을 검색하지 않으려면 제거하십시오 .stringe_'grep -qi "string" $REPLY'_trueommtimeD

관련 정보