2
./usr/share/doc/nss_ldap-253/pam.d/passwd |
|
루트 디렉터리와 한 수준 깊은 하위 디렉터리 하나에서 passwd를 찾습니다(예: 루트 - 수준 1, 하위 디렉터리 하나 - 수준 2)
1 |
# find -maxlength 2 -name passwd |
루트 디렉터리와 최대 2개 수준까지의 하위 디렉터리에서 passwd 파일을 찾습니다(예: 루트 - 수준 1, 두 개의 하위 디렉터리 - 수준 2 및 3)
1 |
# find / -maxlength 3 -name passwd |
두 번째 수준 하위 디렉터리와 네 번째 수준 하위 디렉터리 사이에서 passwd 파일을 찾으세요.
1 |
# find -minlength 3 -maxlength 5 -name passwd |
4. find 명령으로 찾은 파일에서 명령을 실행합니다.
다음 예에서는 "MyCProgram.c"라는 이름의 모든 대소문자 구분 파일의 MD5 확인 합계를 계산하는 find 명령을 보여줍니다. {}는 현재 파일 이름으로 대체됩니다.
1 |
find -iname "MyCProgram.c" -exec md5sum {} ; |
2 |
d41d8cd98f00b204e9800998ecf8427e ./mycprogram.c |
3 |
d41d8cd98f00b204e9800998ecf8427e ./backup/mycprogram.c |
4 |
d41d8cd98f00b204e9800998ecf8427e ./backup/MyCProgram.c |
5 |
d41d8cd98f00b204e9800998ecf8427e ./MyCProgram.c |
5 반대로
을 일치시키면 이름이 MyCProgram.c가 아닌 모든 파일이나 디렉터리가 표시됩니다. MaxDeepth가 1이므로 현재 디렉터리의 파일과 디렉터리만 표시됩니다.
1 |
find -maxlength 1 -not -iname "MyCProgram.c" |
4 |
./create_sample_files.sh |
6. inode 번호를 사용하여 파일 찾기
모든 파일에는 파일을 구별할 수 있는 고유한 inode 번호가 있습니다. 이름이 비슷한 두 개의 파일을 만듭니다. 예를 들어 하나는 뒤에 공백이 있고 다른 하나는 공백이 없습니다.
ls의 출력에서는 어떤 파일에 후행 공백이 있는지 구분할 수 없습니다. -i 옵션을 사용하면 파일의 inode 번호를 볼 수 있으며 이를 통해 두 파일을 구별할 수 있습니다.
아래와 같이 find 명령에 inode 번호를 지정할 수 있습니다. 여기서 find 명령은 inode 번호로 파일 이름을 바꿉니다.
1 |
find -inum 16187430 -exec mv {} new-test-file-name ; |
위와 같이 이름이 잘못된 파일로 작업을 수행하려는 경우 이 기술을 사용할 수 있습니다. 예를 들어, file?.txt라는 파일의 이름에는 특수 문자가 있습니다. "rm file?.txt"를 실행하면 아래 표시된 세 파일이 모두 삭제됩니다. 따라서 아래 단계에 따라 "file?.txt" 파일을 삭제하세요.
2 |
file1.txt file2.txt 파일?.txt |
각 파일의 inode 번호를 찾으세요.
아래와 같이: inode 번호를 사용하여 특수 기호가 있는 파일 이름을 제거합니다.
1 |
find -inum 804180 -exec rm {} ; |
5 |
[참고: 이름이 "file?.txt"인 파일은 이제 제거되었습니다.] |
7. 파일 권한을 기준으로 파일 찾기
다음 작업이 합리적입니다.
이 예에서는 디렉터리에 다음 파일이 포함되어 있다고 가정합니다. 이러한 파일에는 서로 다른 권한이 있습니다.
3 |
-rwxrwxrwx 1 루트 루트 0 2009-02-19 20:31 all_for_all |
4 |
-rw-r--r-- 1 루트 루트 0 2009-02-19 20:30 Everybody_read |
5 |
------------ 1 루트 루트 0 2009-02-19 20:31 no_for_all |
6 |
-rw------- 1 루트 루트 0 2009-02-19 20:29 보통_파일 |
7 |
-rw-r----- 1 루트 루트 0 2009-02-19 20:27 다른 사람_can_ also_read |
8 |
----r----- 1 루트 루트 0 2009-02-19 20:27 다른 사람_can_only_read |
그룹 읽기 권한이 있는 파일을 찾아보세요. 파일에 대한 다른 권한은 무시하고 동일한 그룹의 사용자에 대한 읽기 권한이 있는 현재 디렉터리의 파일을 찾으려면 다음 명령을 사용합니다.
1 |
찾기 -perm -g=r -type f -exec ls -l {} ; |
2 |
-rw-r--r-- 1 루트 루트 0 2009-02-19 20:30 ./everybody_read |
3 |
-rwxrwxrwx 1 루트 루트 0 2009-02-19 20:31 ./all_for_all |
4 |
----r----- 1 루트 루트 0 2009-02-19 20:27 ./others_can_only_read |
5 |
-rw-r----- 1 루트 루트 0 2009-02-19 20:27 ./others_can_ also_read |
그룹 사용자에게 읽기 전용 권한이 있는 파일을 찾으세요.
1 |
찾기 . -perm g=r -type f -exec ls -l {} ; |
2 |
----r----- 1 루트 루트 0 2009-02-19 20:27 ./others_can_only_read |
그룹 사용자에 대한 읽기 전용 권한이 있는 파일을 찾습니다(8진수 권한 형식 사용).
1 |
찾기 -perm 040 -type f -exec ls -l {} ; |
2 |
----r----- 1 루트 루트 0 2009-02-19 20:27 ./others_can_only_read |
8. 홈 디렉터리와 하위 디렉터리에서 빈 파일(0바이트 파일)을 모두 찾습니다.
다음 명령의 출력 파일 대부분은 다른 프로그램에서 생성된 잠긴 파일과 장소 호더입니다
홈 디렉터리에 있는 빈 파일만 나열하세요.
현재 디렉터리에 숨겨지지 않은 빈 파일만 나열됩니다.
1 |
find . -max깊이 1 -empty -not -name ".*" |
9. 가장 큰 파일 5개 찾기
다음 명령은 현재 디렉터리와 하위 디렉터리에서 가장 큰 파일 5개를 나열합니다. 명령이 처리해야 하는 파일 수에 따라 시간이 걸립니다.
1 |
find .f -exec ls -s {} |
|
10. 가장 작은 파일 5개를 찾는 방법은 정렬 순서가 내림차순이라는 점이 다릅니다.
1
| find .f -exec ls -s {} |
|
위 명령에서 보이는 것은 단지 빈 파일(0바이트 파일)일 가능성이 매우 높습니다. 따라서 다음 명령을 사용하면 0바이트 파일 대신 가장 작은 파일을 나열할 수 있습니다.
1
find -not -empty -type f -exec -s {} 정렬 -n |
|
|
11. 지정된 파일 형식의 파일을 찾으려면 -type을 사용하세요.
소켓 파일만 찾습니다.
1
.-type s를 찾으세요
|
|
모든 디렉토리 찾기
1
find . -유형 f -이름 ".*"
|
|
숨겨진 디렉터리 모두 찾기
1
find -type d -name ".*"
|
|
12. 수정 시간을 다른 파일과 비교하여 파일을 찾습니다.
지정된 파일 이후에 수정된 파일을 표시합니다. 아래 find 명령은 일반_파일 이후에 생성되고 수정된 모든 파일을 표시합니다.
03
-rw-r----- 1 루트 루트 0 2009-02-19 20:27 다른 사람_can_ also_read
|
|
04
----r----- 1 루트 루트 0 2009-02-19 20:27 다른 사람_can_only_read
|
|
05
-rw------- 1 루트 루트 0 2009-02-19 20:29 보통_파일
|
|
06
-rw-r--r-- 1 루트 루트 0 2009-02-19 20:30 Everybody_read
|
|
07
-rwxrwxrwx 1 루트 루트 0 2009-02-19 20:31 all_for_all
|
|
08
------------ 1 루트 루트 0 2009-02-19 20:31 no_for_all
|
|
10
# find -newer common_file
|
|
14
./no_for_all
|
|
13. 파일 크기별로 파일 찾기
파일 크기별로 파일을 찾으려면 -size 옵션을 사용하세요. 지정된 파일보다 큰 파일 찾기
1
~ -크기 +100M 찾기
|
|
지정된 파일보다 작은 파일 찾기
주어진 크기와 일치하는 파일 찾기
참고: – 주어진 크기보다 작음을 의미하고 +는 주어진 크기보다 크다는 것을 의미합니다. 주어진 크기와 정확히 동일한 크기를 나타내는 기호는 없습니다.
14. 일반적으로 사용되는 찾기 작업에 별칭을 지정하세요.
유용한 것을 찾으면 별칭을 지정할 수 있습니다. 그리고 원하는 곳 어디에서나 실행하세요.
a.out 파일을 삭제하는 데 일반적으로 사용됩니다.
1 |
alias rmao="find . -iname a.out -exec rm {} ;" |
c 프로그램에서 생성된 코어 파일을 삭제하세요.
1 |
alias rmc="find . -iname core -exec rm {} ;" |
15 대용량 패키지 파일을 삭제하려면 find 명령을 사용하세요.
다음 명령은 100M보다 큰 *.zip 파일을 삭제합니다.
1 |
find / -type f -name *.zip -size +100M -exec rm -i {} ;" |
Heavy Rain 100M의 모든 *.tar 파일을 삭제하려면 별칭 rm100m을 사용하세요. 동일한 아이디어를 사용하여 rm1g, rm2g 및 rm5g라는 범주 이름을 만들어 1G, 2G 및 5G보다 큰 파일을 모두 삭제할 수 있습니다.
1 |
alias rm100m="find / -type f -name *.tar -size +100M -exec rm -i {} ;" |
2 |
# 별칭 rm1g="find / -type f -name *.tar -size +1G -exec rm -i {} ;" |
3 |
# 별칭 rm2g="find / -type f -name *.tar -size +2G -exec rm -i {} ;" |
4 |
# 별칭 rm5g="find / -type f -name *.tar -size +5G -exec rm -i {} ;" |
명령어 예시 찾기(2부)