논리 NOT
논리 AND
논리 OR
우선순위: NOT AND OR
동일 수준 작업은 왼쪽에서 오른쪽으로 진행됩니다.
작업 중 cmd를 입력하고, dos를 입력하고, cd\를 입력하여 C 드라이브의 디렉터리로 들어간 다음, dir을 입력하여 C 드라이브의 파일 목록을 가져옵니다. Windows 폴더에 들어가려면 tree를 입력하세요. D 드라이브를 입력하세요.
검색하려면 Windows 검색 기능과 유사한 find 명령을 사용하세요.
Dir c:*.exe/b/s C 드라이브에 있는 모든 .exe 파일을 검색할 수 있습니다.
구문: 시작 디렉터리 검색 조건 찾기
다음 는 발췌한 내용입니다.
find 명령어
기능: 디렉토리 구조에서 파일을 검색하고 지정된 작업을 수행합니다. 이 명령은 상당히 많은 검색 조건을 제공하며 매우 강력합니다.
구문: 찾기 시작 디렉터리 검색 조건 작업
설명: find 명령은 지정된 시작 디렉터리에서 시작하여 해당 하위 디렉터리를 반복적으로 검색하여 검색 조건에 맞는 파일을 찾고 관련 작업을 수행합니다. 그것에.
이 명령이 제공하는 검색 조건은 and, or가 아닌 논리 연산자로 구성된 복합 조건일 수 있습니다. 논리 연산자 and, or 및 not의 의미는 다음과 같습니다.
(1) 및 명령에서 "-a"로 표시되는 논리 AND는 시스템 기본 옵션으로, 주어진 조건이 모두 만족되면 검색 조건이 만족된 것으로 간주됩니다. 예:
$ find –name ’tmp’ –xtype c -user ’inin’
이 명령은 주어진 세 가지 조건을 만족하는 모든 파일을 찾습니다.
(2) 또는: 논리적 OR, 명령에서 "-o"로 표시됩니다. 이 연산자는 주어진 조건 중 하나가 충족되면 검색 조건이 충족된다는 것을 의미합니다. 예:
$ find –name 'tmp' –o –name 'mina*'
이 명령은 파일 이름이 'tmp'이거나 'mina*'와 일치하는 모든 파일을 쿼리합니다. .
(3) not: 명령에서 "!"로 표시되는 논리적 부정입니다. 이 연산자는 주어진 기준에 맞지 않는 파일을 찾는 것을 의미합니다. 예:
$ find ! –name 'tmp'
이 명령은 파일 이름이 'tmp'가 아닌 모든 파일을 쿼리합니다.
많은 논리 옵션을 사용할 경우 이러한 옵션을 괄호로 묶을 수 있다는 점에 유의하세요. 쉘 자체가 대괄호를 오해하는 것을 방지하기 위해 부호라는 단어 앞에 이스케이프 문자 ""를 추가하여 대괄호의 의미를 제거해야 합니다.
예: $ find (–name 'tmp' -xtype c -user 'inin' )
검색 조건에는 다음과 같은 옵션이 있습니다.
먼저, 다음 각각 옵션의 n 값은 세 가지 방법으로 입력할 수 있습니다. n이 20이라고 가정하면 다음과 같습니다.
+20은 20 이후(21, 22, 23 등)를 의미합니다.
-20은 20 이전(19, 18, 17 등)을 의미합니다.
20은 정확히 20을 의미합니다.
1. 이름과 파일 속성으로 검색하세요.
- name 'string' 파일 이름이 주어진 문자열과 일치하는 모든 파일을 찾습니다. 문자열에는 와일드카드 문자 *,?, [ ]를 사용할 수 있습니다.
- lname 'string'은 파일 이름이 주어진 문자열과 일치하는 모든 심볼릭 링크 파일을 찾습니다. 와일드카드 문자 *,?, [ ]를 문자열에 사용할 수 있습니다.
-gid n은 ID 번호 n을 가진 사용자 그룹에 속하는 모든 파일을 찾습니다.
-uid n은 ID 번호 n을 가진 사용자에게 속한 모든 파일을 찾습니다.
-group 'string' 문자열에 지정된 사용자 그룹 이름에 속하는 모든 파일을 찾습니다.
-user 'string' 문자열에 지정된 사용자 이름에 속하는 모든 파일을 찾습니다.
-nogroup은 자신이 속한 유효한 그룹이 없는 파일, 즉 파일이 속한 그룹이 /e t c / gr o u ps에 존재하지 않는 파일을 검색합니다.
-nouser는 유효한 소유자가 없는 파일을 검색합니다. 즉, 파일 소유자가 /etc/passwd에 존재하지 않습니다.
-newer file1 ! file2는 변경 시간이 파일 1보다 최신이지만 파일 2보다 오래된 파일을 찾습니다.
-empty는 크기가 0인 디렉터리나 파일을 찾습니다.
-path 'string' 경로 이름이 주어진 문자열과 일치하는 모든 파일을 검색합니다. 와일드카드 문자 *,?, [ ]를 문자열에 사용할 수 있습니다.
-perm 권한 지정된 권한을 가진 파일 및 디렉터리를 검색합니다. 권한은 711, 644로 표시할 수 있습니다.
-size n[bckw] 지정된 파일 크기의 파일을 검색합니다. n 뒤의 문자는 단위를 나타냅니다. 기본값은 512바이트 블록을 나타냅니다.
-type x는 x 유형의 파일을 검색합니다. 여기서 x는 다음 문자 중 하나입니다.
b 블록 장치 파일
c 문자 장치 파일
p>
d 디렉토리 파일
p 명명된 파이프(FIFO)
f 일반 파일
l 심볼릭 링크(심볼릭 링크)
s 소켓 파일
-xtype x는 기본적으로 -type과 동일하지만 심볼릭 링크 파일만 검색합니다.
2. 시간 기준 검색
- amin n은 n분 전에 액세스한 모든 파일을 검색합니다.
- atime n은 n일 전에 액세스된 모든 파일을 찾습니다.
- cmin n은 n분 전에 파일 상태가 수정된 모든 파일을 찾습니다.
- ctime n은 n일 전에 파일 상태가 수정된 모든 파일을 찾습니다.
- mmin n은 n분 전에 내용이 수정된 모든 파일을 찾습니다.
- mtime n은 n일 전에 내용이 수정된 모든 파일을 찾습니다.
3. 실행 가능한 작업
- exec 명령 이름 {} \; 사용자에게 명령 실행 여부를 묻지 않고 조건을 만족하는 파일에 대해 주어진 unix 명령을 실행합니다. {}는 명령의 매개변수가 발견된 파일임을 의미합니다. 명령의 끝은 "\;"로 끝나야 하며, "{}"와 "\;" 사이에는 공백이 있어야 합니다.
- ok 명령 이름 {} \; 조건을 충족하는 파일에 대해 주어진 Linux 명령을 실행합니다. exec와는 달리 사용자에게 명령을 실행해야 하는지 묻습니다.
- ls는 발견된 모든 파일을 자세히 나열합니다.
- fprintf filename 발견된 파일 이름을 지정된 파일에 씁니다.
- print는 표준 출력 장치에 발견된 파일 이름을 표시합니다.
- printf 형식 형식 작성 방법은 C 언어 관련 책을 참고하세요.
이름 옵션 사용
파일 이름 옵션은 find 명령에서 가장 일반적으로 사용되는 옵션입니다. 이 옵션은 단독으로 사용되거나 다른 옵션과 함께 사용됩니다.
특정 파일 이름 패턴을 사용하여 파일을 일치시킬 수 있습니다. 파일 이름 패턴을 따옴표로 묶어야 합니다.
현재 경로가 무엇이든 *.t ~와 일치하는 파일 이름을 가진 파일을 찾으려면 $H O M E 디렉터리를 나타냅니다.
$ find ~ -name "*.txt" -print
현재 디렉터리와 하위 디렉터리에서 모든 ' * . t x t' 파일을 찾으려면 다음을 사용할 수 있습니다. < /p>
$ find . -name "*.txt" -print
원하는 현재 디렉터리와 하위 디렉터리에서 파일 이름이 대문자로 시작하는 파일을 찾으려면 다음을 사용할 수 있습니다.
p>
$ find . -name "[A-Z]*" -print
/etc 디렉토리에서 이름이 ho s t로 시작하는 파일을 찾으려면 다음을 사용할 수 있습니다. < /p>
$ find /etc -name "host*" -print
$H O M E 디렉토리에서 파일을 찾으려면 다음을 사용할 수 있습니다:
$ find ~ -name "*" -print 또는 find . -print
시스템을 높은 부하에서 실행하려면 루트 디렉터리에서 시작하는 모든 파일을 검색하세요. 시스템 관리자에게 좋은 인상을 남기고 싶다면 그렇게 하기 전에 신중하게 생각하는 것이 가장 좋습니다!
$ find / -name "*" -print
현재 디렉터리에서 파일 이름을 찾으려면 이름이 두 개의 소문자로 시작하고 그 뒤에 두 개의 숫자가 옵니다. 그리고 마지막으로 * . t x t
다음 명령은 a x 3 7 이라는 파일을 반환할 수 있습니다:
$ find . ][0--9].txt" -print
perm 옵션 사용
파일 권한 모드에 따라 파일을 찾으려면 -perm 옵션을 사용하면 됩니다. . 모든
사용자가 실행 권한을 갖고 있는 파일을 찾거나 사용자 디렉토리에서 파일 권한 유형을 확인해야 할 수도 있습니다. 이 옵션을 사용할 때
권한에 8진수 표기법을 사용하는 것이 가장 좋습니다.
현재 디렉터리에서 파일 권한 비트가 7 5 5인 파일을 찾기 위해서는, 즉 파일 소유자는 읽고, 쓰고, 실행할 수 있고, 다른 사용자는 파일을 읽고 실행할 수 있다.
, 다음을 사용할 수 있습니다:
$ find . -perm 755 -print
다음으로 읽고, 쓰고, 실행할 수 있는 파일을 찾으려면 현재 디렉토리의 모든 사용자(이 상황에 주의하세요)
find 명령의 -per m 옵션을 사용할 수 있습니다. 8진수 앞에 대시를 추가합니다. 다음 명령에서 - per m은 테이블이 파일 권한으로 조회됨을 의미하며 '0 0 7'은 chmod 명령의 절대 모드에서 사용하는 표기법과 정확히 동일합니다.
$ find . -perm -007 -print
디렉토리 무시
파일을 찾을 때 디렉토리를 무시하려는 경우 디렉토리 찾고 있는 파일이 없습니다.
-p r u n e 옵션을 사용하여 무시해야 하는 디렉토리를 나타낼 수 있습니다. -p u n e 옵션을 사용할 때는 주의하십시오. - de p th 옵션을 동시에 사용하면 find 명령에서 - p r u n e 옵션이 무시되기 때문입니다.
/ a pp s 디렉토리에서는 파일을 찾고 싶지만 / a pp s / bin 디렉토리에서는 찾지 않으려면 다음을 사용할 수 있습니다:
$ find /apps -name " /apps/bin " -prune -o -print
user 및 nouser 옵션 사용
파일 소유자에 따라 파일을 찾으려면 해당 사용자에게 줄 수 있습니다. 이름.
예를 들어 $H O M E 디렉토리에서 소유자가 dave인 파일을 찾으려면 다음을 사용할 수 있습니다.
$ find ~ -user dave -print
In / e t c에서 파일 찾기 소유자가 u u c p인 디렉터리:
$ find /etc -user uucp -print
소유자 계정이 삭제된 파일을 찾으려면 - no u s e r 옵션을 사용할 수 있습니다. 이렇게 하면 소유자가
/etc/passwd 파일에 유효한 계정을 갖고 있지 않은 파일을 찾을 수 있습니다. -no user 옵션을 사용하는 경우 사용자 이름을 제공할 필요가 없습니다. find 명령이 해당 작업을 수행할 수 있습니다. 예를 들어 /home 디렉토리에서 해당 파일을 모두 찾으려면 다음을 사용할 수 있습니다.
$ find /home -nouser -print
group 및 nogroup 옵션 사용< /p>< p>user 및 nouser 옵션과 마찬가지로 find 명령에도 파일이 속한 사용자 그룹에 대한 동일한 옵션이 있습니다. /a pps 디렉토리에서 accts 사용자 그룹에 속하는 파일을 찾으려면, 다음을 사용할 수 있습니다:
$ find /apps -group accts -print
자신이 속한 유효한 사용자 그룹이 없는 모든 파일을 찾으려면 n o g r o up 옵션을 사용하십시오. 아래의 f i n d 명령은 파일의 루트 디렉터리에서 해당 파일을 찾습니다.
system
$ Fine/-nogroup-print
다음에 따라 파일을 찾습니다. 시간 변경
p>
파일이 변경된 시간을 기준으로 파일을 찾으려면 m 시간 옵션을 사용할 수 있습니다. 시스템에 갑자기 여유 공간이 없어지면
이 기간 동안 특정 파일의 길이가 급격히 늘어났을 가능성이 높습니다. 이 경우 mtime 옵션을 사용하여 해당 파일을 찾을 수 있습니다.
지금부터 n일 이내에 변경된 파일을 제한하려면 빼기 기호(-)를 사용하고, n일 전에 변경된 파일을 제한하려면 더하기 기호(+)를 사용하세요.
5일 이내에 변경된 시스템 루트 디렉터리의 파일을 찾으려면 다음을 사용할 수 있습니다.
$ find / -mtime -5 -print
3일 이상 전에 변경된 / v a r / a d m 디렉토리의 파일을 찾으려면 다음을 사용할 수 있습니다:
$ find /var/adm -mtime +3 -print
특정 파일보다 최신이거나 이전보다 오래된 파일 찾기
변경 시간이 특정 파일보다 최신이지만 다른 파일보다 오래된 모든 파일을 찾으려면 -n e w e r 옵션을 사용할 수 있습니다.
. 일반적인 형식은 다음과 같습니다:
newest_file_name !oldest_file_name
어디서! 논리적 NOT 기호입니다.
약 이틀 간격으로 변경된 두 개의 파일은 다음과 같습니다.
아래의 find 명령은 변경 시간이 ag e . aw k 파일보다 최신이지만 b e l t s 파일보다 오래된 파일을 찾을 수 있습니다.
이것을 사용하려면 find 명령의 옵션을 사용하면 2시간 이내에 변경된 파일을 찾습니다. 2시간 이내에 변경된 기존 파일이 없으면 변경 시간을 비교할 수 있는 파일이 없습니다.
이 문제를 해결하려면 먼저 파일을 만들고 날짜와 타임스탬프를 원하는 시간으로 설정하면 됩니다. 이는 touch
명령을 사용하여 수행할 수 있습니다.
현재 시간이 2 3:4 0이라고 가정하고 2시간 이내에 변경된 파일을 찾으려면 먼저 다음과 같은 파일을 생성하면 됩니다.
p>
요구 사항을 충족하는 파일이 생성되었습니다. 여기서는 오늘이 5월 4일이고 파일 변경 시간은 2 1:4 0으로 정확히 2시간 빠릅니다. 지금.
이제 find 명령의 -ne w e r 옵션을 사용하여 현재 디렉토리에서 2시간 이내에 변경된 모든 파일을 찾을 수 있습니다.
:
$ find .-newer dstamp -print
유형 옵션 사용
UN I X 또는 L I N U X 시스템에는 여러 가지 파일 유형이 있습니다. 우리는 이전 장에서 이 작업을 이미 수행했습니다. >
소개, 여기서는 자세히 다루지 않겠습니다. /etc 디렉토리에서 모든 디렉토리를 찾으려면 다음을 사용할 수 있습니다.
$ find /etc -type d -print
현재 디렉토리에서 디렉토리를 제외한 모든 유형을 찾으려면
$ find ! -type d -print
/etc 디렉토리에서 모든 심볼릭 링크 파일을 찾으려면 다음을 사용할 수 있습니다:
< p>$ find /etc -type l -print크기 옵션 사용
여기서 언급된 파일 길이는 블록별로 결정될 수 있습니다. b l o c k) 측정은 바이트 단위로도 측정할 수 있습니다. 바이트 단위로 측정된 파일 길이의 표현 형식은 N입니다. 블록 단위로 측정된 파일 길이는 숫자로만 표현할 수 있습니다.
.
개인적으로는 항상 바이트를 사용하는데, 대부분의 사람들은 파일 길이로 파일을 찾을 때 바이트를 사용하는 것을 선호합니다.
특별한 경우가 아니면 블록 수가 아닌 파일 길이를 나타냅니다. 블록을 사용하여 변환하는 것이 더 쉬운 파일 시스템의 크기를 살펴보세요.
현재 디렉토리에서 파일 길이가 1MB보다 큰 파일을 찾으려면 다음을 사용할 수 있습니다.
$ find -size +1000000c -print
/home/apache 디렉토리에서 파일 길이가 정확히 100바이트인 파일을 찾으려면 다음을 사용할 수 있습니다.
$ find /home/apache -size 100c -print
현재 디렉토리에서 10블록보다 긴 파일을 찾으려면(한 블록은 512바이트와 동일) 다음을 사용할 수 있습니다:
$ find -size +10 -print
< p>깊이 옵션 사용find 명령을 사용할 때 먼저 모든 파일을 일치시킨 다음 하위 디렉터리에서 검색할 수 있습니다. find 명령이 이를 수행하도록 하려면 깊이 옵션을 사용하십시오. 그 이유 중 하나는 find 명령을 사용하여 파일 시스템을 테이프에 백업할 때 먼저 모든 파일을 백업한 다음 하위 디렉터리의 파일을 백업하기 때문입니다.
다음 예에서 find 명령은 파일 시스템의 루트 디렉터리에서 시작하여 C O F I L E라는 파일을 찾습니다.
먼저 모든 파일을 일치시킨 다음 하위 디렉터리에서 검색합니다.
$ find / -name "CON.FILE" -length -print
마운트 옵션 사용
현재 파일 시스템에서 파일 찾기(다른 파일을 입력하지 않고) 시스템), find 명령의 마운트 옵션을 사용할 수 있습니다.
다음 예에서는 현재 디렉터리에서 시작하여 이 파일 시스템에서 파일 이름이 X C로 끝나는 파일을 찾습니다.
$ find -name "*.XC" - mount -print
cpio 옵션 사용
c p i o 명령은 테이프 장치에 파일을 백업하거나 테이프 장치에서 파일을 복원하는 데 사용할 수 있습니다. find 명령을 사용하여 전체 파일 시스템(대부분 파일 시스템의 일부)에서 파일을 찾은 다음 c pio 명령을 사용하여 해당 파일을 테이프에 백업할 수 있습니다.
c pio 명령을 사용하여 /etc, /home 및 /apps 디렉터리의 파일을 백업하려면 아래 제공된 명령을 사용할 수 있지만 현재 위치는 다음의 루트 디렉터리에 있다는 점을 기억하세요. 파일 시스템: < /p>
(위 예에서 첫 번째 줄 끝에 있는 \는 명령이 아직 끝나지 않았음을 s h e l l에 알리고 \ 뒤의 캐리지 리턴은 무시됩니다.)
위의 예에서는 경로에 /가 누락되어 있다는 점에 유의해야 합니다. 이를 상대 경로라고 합니다. 상대 경로를 사용하는 이유는 테이프에서 이러한 파일을 복원할 때 파일을 복원할 경로를 선택할 수 있기 때문입니다. 예를 들어,
먼저 이러한 파일을 다른 디렉토리에 복원하고 특정 작업을 수행한 다음 원래 디렉토리에 복원할 수 있습니다. 백업 중에 /etc와 같은 절대 경로를 사용하는 경우 복구 중에는 /etc 디렉터리로만 복원할 수 있으며 다른 선택은 없습니다. 위의 예에서는 find 명령에 먼저 /etc 디렉토리로 이동한 다음 /home 및 /apps 디렉토리로 이동하여 해당 디렉토리의 파일을 먼저 일치시킨 다음 해당 하위 디렉토리의 파일을 일치시키도록 지시했습니다. 이 모든 결과는 다음으로 파이프됩니다. 백업을 위한 c pio 명령.
그런데 위의 예에서 c p i o 명령은 C 6 5 5 3 6 옵션을 사용합니다. B 옵션을 사용할 수도 있었지만 이 경우 각 블록의 크기는 5 1에 불과합니다. 2바이트이고 C 6 5 5 3 6 옵션을 사용한 후에는 블록 크기가 6 4K 바이트가 됩니다
(6 5 5 3 6 / 1 0 2 4).
exec 또는 ok를 사용하여 쉘 명령을 실행합니다.
일부 파일을 일치시킨 후 해당 파일에 대해 특정 작업을 수행할 수 있습니다. 이 경우 -ex ec 옵션을 사용할 수 있습니다.
find 명령이 해당 파일과 일치하면 - exec 옵션의 명령을 사용하여 해당 파일에 대해 작업을 수행할 수 있습니다(일부 운영 체제에서는
- exec 옵션만 허용됨). ls와 같은 명령이나 ls -l과 같은 명령을 실행합니다. 대부분의 사용자는 이 옵션을 사용하여 오래된 파일을 찾아 삭제합니다. 여기서는 실제로 rm 명령을 실행하여 파일을 삭제하기 전에 ls 명령을 사용하여 해당 파일이 삭제될 파일인지 확인하는 것이 좋습니다.
ex e c 옵션 뒤에는 실행할 명령, { } 쌍, 공백 및 \, 마지막으로
세미콜론이 옵니다.
exe c 옵션을 사용하려면 print 옵션도 함께 사용해야 합니다. find 명령을 확인하면 명령이 현재 경로의 상대 경로와 파일 이름만 출력한다는 것을 알 수 있습니다.
ls -l 명령을 사용하여 일치하는 파일을 나열하려면 find 명령의 -ex e c 옵션에 ls -l 명령을 넣을 수 있습니다. 예:
위의 예에서 find 명령은 현재 디렉토리의 모든 일반 파일을 일치시키고 ls -l
명령을 -ex ec 옵션과 함께 사용하여 나열합니다.
/logs 디렉토리에서 5일 이상 전에 변경된 파일을 찾아서 삭제하려면 다음을 사용하면 됩니다:
$ findlogs -type f -mtime +5 -exec rm { } \;
쉘에서 어떤 방식으로든 파일을 삭제하기 전에 먼저 해당 파일을 확인해야 한다는 점을 기억하세요.
m v, rm 등의 명령을 사용할 때 -exe e c 옵션을 사용하면 안전 모드를 사용할 수 있습니다. 일치하는 각 파일을 작업하기 전에 메시지가 표시됩니다
. 다음 예에서 find 명령은 파일 이름이 .LOG로 끝나고 5일 이상 전에 변경된 모든 파일을 찾아 삭제하지만 삭제하기 전에 프롬프트를 표시합니다.
파일을 삭제하려면 y 키를 누르고, 삭제하지 않으려면 n 키를 누르세요.
-ex ec 옵션과 함께 모든 형태의 명령을 사용할 수 있습니다. 다음 예에서는 gr e p 명령을 사용합니다. find 명령
먼저 p a s s w d, p as s w d . o ld, p a s s w d 와 같이 파일 이름이 "pa s s w d *"인 모든 파일을 찾은 다음 gr e p 명령을 실행하여 해당 파일에 무엇이 있는지 확인합니다. 에 경로 사용자가 있습니다.
find 명령의 예
find 명령의 기본 옵션을 소개했으며, 다음은 find 명령의 몇 가지 예입니다.
$HOME 디렉토리의 모든 파일을 일치시키기 위해 다음 두 가지 방법을 사용할 수 있습니다:
$ find $HOME -print
$ find ~ -print
현재 디렉터리에서 su id 비트를 찾으려면 파일 소유자에게 읽기, 쓰기, 실행 권한이 있어야 하며, 파일이 속한 그룹의 사용자와 다른 사용자는 읽기 및 실행 권한이 있는 파일의 경우 다음을 사용할 수 있습니다.
$ find . -type f -perm 4755 -print
파일 길이가 다음과 같은 일반 파일을 모두 찾습니다. 0을 시스템에서 나열하고 전체 경로를 사용할 수 있습니다.
$ find / -type f -size 0 -exec ls -l {} \; / v a r / log s 디렉토리가 시간에 변경됨 7 날짜 이전의 일반 파일을 삭제하고 다음을 사용할 수 있습니다.
$ find /var/logs -type f -mtime +7 -exec rm {} \;
시스템을 찾으려면 감사 그룹에 속한 모든 파일에 대해 다음을 사용할 수 있습니다.
$find /-name -group audit -print
우리의 감사 시스템 중 하나는 매일 감사 로그 파일을 생성합니다. 로그 파일 이름 끝에 숫자가 포함되어 있어 어떤 파일이 최신이고 어떤 것이 가장 오래된 것인지 한눈에 알 수 있습니다. d m i n . 로그 파일은
a d m i n . 0 0 1, a d m i n . 다음 find 명령은 7일 전에 액세스되었으며 숫자 접미사가 포함된 /logs 디렉토리의 dmin.log 파일을 삭제합니다. 이 명령은 3자리 숫자만 검사하므로 해당 로그 파일의 접미사는
9 9 9를 초과해서는 안 됩니다.
$ find /logs -name 'admin.log[0-9][0-9][0-9] '-atime +7 -exec rm {} \; >현재 파일 시스템에서 모든 디렉터리를 찾고 정렬하려면 다음을 사용할 수 있습니다.
$ find -type d -print -local -mount |sort
모든 디렉터리를 찾으려면 시스템 r mt 테이프 장치의 경우 다음을 사용할 수 있습니다.
$ find /dev/rmt -print
xargs
find 명령의 -exe e c 옵션 사용 일치하는 파일을 처리하려면 find 명령은 일치하는 모든 파일을
실행을 위해 ex e c로 전달합니다. 불행하게도 일부 시스템에서는 exec에 전달할 수 있는 명령 길이에 제한이 있어서 find 명령이 실행되고 몇 분 후에 오버플로 오류가 발생합니다. 오류 메시지는 일반적으로 "매개변수 열이 너무 깁니다." 또는 "매개변수 열 오버플로"입니다.
x a rg s 명령이 특히 find 명령과 함께 사용되는 곳입니다. F i n d 명령은 일치하는 파일을 x a rg s 명령
에 전달하고, x a rg s 명령은 -ex ec 옵션과 달리 한 번에 모두 가져오는 대신 파일의 일부만 가져옵니다. 이런 방식으로
받은 파일의 첫 번째 배치, 다음 배치 등을 처리할 수 있습니다. 일부 시스템에서는 -e 를 사용합니다. 어떤 경우에는 프로세스가 너무 많아 시스템 성능이 저하되므로
x a rg를 사용하는 동안 효율성이 높지 않습니다. s 명령을 실행하면 프로세스가 하나만 있게 됩니다. 또한 x a rg s 명령을 사용할 때 모든 매개변수를 한 번에 가져올지 아니면 일괄적으로 가져올지 여부와 매번 가져오는 매개변수 수는 명령의 옵션과 시스템 커널의 해당 매개변수에 따라 달라질 수 있습니다. 조정 가능한 매개변수의 수에 따라 결정됩니다
.
x a rg s 명령이 find 명령과 함께 어떻게 사용되는지 살펴보고 몇 가지 예를 들어보겠습니다.
다음 예에서는 시스템의 모든 일반 파일을 찾은 다음 x a rg s 명령을 사용하여 해당 파일이 속하는 범주를 테스트합니다.
다음 예에서는 메모리 정보 덤프를 검색합니다. 파일(코어 덤프)을 전체 시스템에 저장한 다음 결과를
/tmp/core.log 파일에 저장합니다:
$ find -name " core" -print | /p>
쓰기 권한:
$ find /apps/audit -perm -7 -print | xargs chmod o-w
다음 예에서는 gr e p 명령을 사용합니다. 모든 일반 파일에서 de v i c e라는 단어를 검색합니다.
$ find / -type f -print | xargs grep "device"
다음 예에서는 gr e p 명령을 사용합니다. 현재 디렉토리의 모든 일반 파일에서 D B O라는 단어를 검색하십시오.
$ find . 위의 예에서 \는 쉘의 find 명령에서 *의 특별한 의미를 취소하는 데 사용됩니다.
요약
find 명령은 사용자가 지정한 기준에 따라 파일을 일치시킬 수 있는 훌륭한 도구입니다. ex e c 및
x a rgs를 사용하면 사용자는 일치하는 파일에서 거의 모든 명령을 실행할 수 있습니다.