find명령은 다음 형식 인자를 받아 들인다.
find [경로] [옵션] [테스트] [작동]
경로
경로 부분은 쉽다. /bin과 같은 절대 경로나 ..와 같은 상대 경로를 사용할 수 있다.
필요하다면 find /var /home과 같이 여러 경로를 지정할 수 있다.
옵션
옵션은 여러가지가 있는데, 가장 많이 사용하는 것은 다음과 같다.
테스트
find에 지정할 수 있는 테스트에는 여러 가지가 있는데, 각각의 테스트는 true혹은 false를 리턴한다. find가 동작할 때 자신이 찾은 각 파일에 대해 정의된 테스트를 순저대로 적용한다.
테스트가 false를 반환하면 find는 현재 자신이 찾고 있는 그 파일을 무시하고 다음 파일로 넘어간다. 테스트가 true를 반환하면 find는 현재 파일에 대해 그 다음 테스트나 작동을 수행한다. 다음은 많이 쓰이는 테스트들이다.
테스트는 연잔자를 통해 여러 테스트들을 섞어 사용할 수 있다.
예) \(-newer X -o -name "_*" \)
괄호를 사용하기 위해서는 백슬래시(\)를 괄호 앞에 붙여주어야 한다. 이유는 쉘에서 괄호가 다른 의미를 가지기 때문이다.
작동
작동은 원하는 파일을 찾은경우 수행할 일을 처리하게 하는 것이다.
-exec와 -ok명령은 \; 로 끝날 때까지 입력되는 이후 매개 변수를 자체 매개변수로 받아 들인다. 문자열 {} 은 -exec, -ok 명령에 대한 특별한 형식의 매개변수이며, 현재 파일에 대한 전체 경로로 대체 된다.
예) find . -newer text.txt -type f -exec ls -l {} \;
현재 경로에서 파일명이 text.txt인 보통파일을 찾으면 "ls -l 파일이 있는 경로" 명령을 실행하라 라고 해석하면 된다.
find [경로] [옵션] [테스트] [작동]
경로
경로 부분은 쉽다. /bin과 같은 절대 경로나 ..와 같은 상대 경로를 사용할 수 있다.
필요하다면 find /var /home과 같이 여러 경로를 지정할 수 있다.
옵션
옵션은 여러가지가 있는데, 가장 많이 사용하는 것은 다음과 같다.
옵션 |
의미 |
-depth | 디렉토리 자체를 살펴보기 전에 디렉토리의 내용을 검색한다. |
-follow | 기호화된 링크를 따라간다. |
-maxdepths N |
검색할 때 최대 N 수준까지의 디렉토리를 검색한다. |
-mound (혹은 -xdev) |
다른 파일 시스템의 디렉토리는 검색하지 않는다. |
테스트
find에 지정할 수 있는 테스트에는 여러 가지가 있는데, 각각의 테스트는 true혹은 false를 리턴한다. find가 동작할 때 자신이 찾은 각 파일에 대해 정의된 테스트를 순저대로 적용한다.
테스트가 false를 반환하면 find는 현재 자신이 찾고 있는 그 파일을 무시하고 다음 파일로 넘어간다. 테스트가 true를 반환하면 find는 현재 파일에 대해 그 다음 테스트나 작동을 수행한다. 다음은 많이 쓰이는 테스트들이다.
테스트 | 의미 |
-atime N |
파일이 N일 이전에 마지막으로 액세스 되었다. |
-mtime M |
파일이 N일 이전에 마지막으로 수정되었다. |
-name 패턴 |
경로를 제외한 파일의 이름이 주어진 패턴에 일치한다. 쉘이 패턴을 즉시 연산하지 않고 find에 전달하도록 만들기 위해 항상 패턴에 따옴표를 붙여야 한다. |
-newer otherfile |
파일이 otherfile보다 최신이다. |
-type C |
파일이 형식 C이며 이때 C는 특정 형식이 될 수 있다. 가장 흔히 사용되는 것은 디렉토리를 가리키는 "d", 보통 파일을 가리키는 "f"이다. |
-user 사용자이름 |
주어진 이름을 가진 사용자가 파일을 소유하고 있다. |
테스트는 연잔자를 통해 여러 테스트들을 섞어 사용할 수 있다.
연산자 |
의미 |
!(-not) | 테스트를 역으로 수행한다. |
-a(-and) | 두 테스트가 모두 true가 되어야 한다. |
-o(-or) | 둘 중 하나의 테스트가 true가 되어야 한다. |
예) \(-newer X -o -name "_*" \)
괄호를 사용하기 위해서는 백슬래시(\)를 괄호 앞에 붙여주어야 한다. 이유는 쉘에서 괄호가 다른 의미를 가지기 때문이다.
작동
작동은 원하는 파일을 찾은경우 수행할 일을 처리하게 하는 것이다.
작동 | 의미 |
-exec 명령 |
명령을 실행한다. |
-ok 명령 |
-exec와 같지만, 명령을 수행하기 전에 사용자에게 실행 여부를 물어본다. |
파일의 이름을 출력한다. |
|
-ls | 현재 파일에 대해 ls -dils명령을 실행한다. |
-exec와 -ok명령은 \; 로 끝날 때까지 입력되는 이후 매개 변수를 자체 매개변수로 받아 들인다. 문자열 {} 은 -exec, -ok 명령에 대한 특별한 형식의 매개변수이며, 현재 파일에 대한 전체 경로로 대체 된다.
예) find . -newer text.txt -type f -exec ls -l {} \;
현재 경로에서 파일명이 text.txt인 보통파일을 찾으면 "ls -l 파일이 있는 경로" 명령을 실행하라 라고 해석하면 된다.