다음 내용이 포함된 파일/디렉토리를 표시하는 다음 명령이 있습니다.EXEC_EC
주문하다:
ls -ltr | grep 'EXEC_EC'
위 명령을 사용하여: find
7일 전에 생성된 파일을 필터링하는 명령을 작성할 수 있습니까?
이름이 있는 파일을 나열 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이 패턴을 문자열로 예상한 후