ls 출력에서 ​​find 명령을 사용하는 방법

ls 출력에서 ​​find 명령을 사용하는 방법

다음 내용이 포함된 파일/디렉토리를 표시하는 다음 명령이 있습니다.EXEC_EC

주문하다:

ls -ltr | grep 'EXEC_EC'

위 명령을 사용하여: find7일 전에 생성된 파일을 필터링하는 명령을 작성할 수 있습니까?

이름이 있는 파일을 나열 EXEC_EC하고 7일보다 오래된 파일을 찾으려고 합니다.

샘플 출력

example input: 

dr-xr-xr-x   1 home abc       999 Jun 30 11:12 EXEC_EC_ABC_1
dr-xr-xr-x   1 home abc       999 Jul 25 12:44 EXEC_EC_ABC_2
dr-xr-xr-x   1 home abc       999 Aug  1 22:10 EXEC_EC_ABC_3
dr-xr-xr-x   1 home abc       999 Aug  2 22:20 Number
dr-xr-xr-x   1 home abc       999 Aug  2 22:20 Number2

i am trying to get below output 

EXEC_EC_ABC_1
EXEC_EC_ABC_2

답변1

grep어쨌든 사용한다면 필터링에 사용하는 것은 의미가 없습니다 find.

find . -mindepth 1 -maxdepth 1 -name '*EXEC_EC*' -mtime +7

기본적으로 find전체 하위 트리(즉, 모든 하위 디렉터리의 내용)가 탐색됩니다. -mindepth 1 -maxdepth 1이 예제는 단일 디렉터리의 콘텐츠에만 작동하므로 이러한 일이 발생하지 않도록 하세요. 디렉터리 인수가 무시 -mindepth 1됩니다 find(이 경우 .필수는 아니지만 일반적인 경우). -maxdepth 1하위 디렉터리로 내려가는 것을 방지합니다.

답변2

이것이 당신이 찾고 있는 것입니까?

$ find . -name '*EXEC_EC*' -mtime +7 -print

. =는 현재 디렉터리를 나타내며 디렉터리 경로로 바꿀 수 있습니다.

-mtime - 파일 수정 시간을 나타내며 7일보다 오래된 파일을 찾는 데 사용됩니다.

답변3

ls의 출력을 grep으로 파이프할 필요는 없습니다. Grep에는 내장 옵션이 있습니다.

grep -rle 'EXEC_EC'

-l은 파일만 나열합니다. -r 재귀는 모든 파일이 현재 경로에서 시작하여 탐색됨을 의미합니다. -e 이 grep이 패턴을 문자열로 예상한 후

관련 정보