> php教程 > PHP开发 > 15가지 실용적인 Linux find 명령 예제

15가지 실용적인 Linux find 명령 예제

高洛峰
풀어 주다: 2016-12-14 17:32:09
원래의
1388명이 탐색했습니다.

디렉터리 구조에서 파일 검색과 같은 기본 작업 외에도 find 명령을 사용하여 몇 가지 실용적인 작업을 수행하여 명령줄 탐색을 더 쉽게 만들 수도 있습니다.

이 글에서는 초보자와 베테랑 모두에게 매우 유용한 Linux find 명령 15가지를 소개합니다.

먼저 홈 디렉터리에 다음과 같은 빈 파일을 생성하여 다음 find 명령 예제를 테스트합니다.

01 # vim create_sample_files.sh

02 touch MybashProgram.sh

03 touch mycprogram.c

04 touch MyCProgram.c

05 touch Program.c

06

07 mkdir 백업

08 CD 백업

09

10 touch MybashProgram.sh

11 touch mycprogram.c

12 touch MyCProgram.c

13 touch Program.c

14

15 # chmod +x create_sample_files.sh

16

17 # ./create_sample_files.sh

18

19 # ls -R

20 .:

21 백업 MybashProgram.sh MyCProgram.c

22 create_sample_files.sh mycprogram.c Program.c

23

24 ./backup:

25 MybashProgram.sh mycprogram.c MyCProgram.c Program.c

1. 파일 이름으로 파일 찾기

find 명령의 기본 사용법입니다. 다음 예에서는 MyCProgram.c를 검색 이름으로 사용하여 현재 디렉터리와 해당 하위 디렉터리에서 파일을 찾는 방법을 보여줍니다.

1 # find -name "MyCProgram.c"

2 ./backup/MyCProgram.c

3 ./MyCProgram.c

2. 대소문자 무시하고 파일명으로 파일 찾기

find 명령어의 기본 사용법입니다. 다음 예에서는 대소문자를 무시하고 검색 이름으로 MyCProgram.c를 사용하여 현재 디렉터리와 해당 하위 디렉터리에서 파일을 찾는 방법을 보여줍니다.

1 # find -iname "MyCProgram.c"

2 ./mycprogram.c

3 ./backup/mycprogram.c

4 . /backup/MyCProgram.c

5 ./MyCProgram.c

3. 루트 디렉터리에서 지정된 디렉터리

에 대한 검색 깊이를 제한하려면 minlength 및 maxlength를 사용하세요. 해당 하위 디렉터리에서 passwd 파일을 찾습니다.

1 # find / -name passwd

2 ./usr/share/doc/nss_ldap-253/pam.d/passwd

3 ./usr/bin/ passwd

4 ./etc/pam.d/passwd

5 ./etc/passwd

루트 디렉토리와 1레벨 하위 디렉토리에서 passwd를 찾으세요. (예: 루트 - 레벨 1, 하나의 하위 디렉토리 - 레벨 2)

1 # find -maxlength 2 -name passwd

2 ./etc/passwd

최대 깊이가 2개인 루트 디렉터리와 해당 하위 디렉터리에서 passwd 파일을 찾습니다(예: 루트 - 수준 1, 두 개의 하위 디렉터리 - 수준 2 및 3)

1 # find / -maxlength 3 -name passwd

2 ./usr/bin/passwd

3 ./etc/pam.d/passwd

4 ./etc/passwd

2차 하위 디렉토리와 4차 하위 디렉토리 사이의 passwd 파일을 찾으세요.

1 # find -minlength 3 -maxlength 5 -name passwd

2 ./usr/bin/passwd

3 ./etc/pam.d/passwd

4. find 명령으로 찾은 파일에 대해 명령을 실행합니다.

다음 예에서는 "MyCProgram.c"라는 이름의 모든 대소문자를 구분하지 않는 파일의 MD5 확인을 계산하는 find 명령을 보여줍니다. {}는 현재 파일 이름으로 대체됩니다.

1 find -iname "MyCProgram.c" -exec md5sum {} ;

2 d41d8cd98f00b204e9800998ecf8427e ./mycprogram.c

3 d41d8cd98f00b204e980099 8ecf8427e ./backup/mycprogram.c

4 d41d8cd98f00b204e9800998ecf8427e ./backup/MyCProgram.c

5 반대로

과 일치하면 MyCProgram c 파일이나 디렉터리가 아닌 모든 이름이 표시됩니다. MaxDeepth가 1이므로 현재 디렉터리의 파일과 디렉터리만 표시됩니다.

1 find -maxlength 1 -not -iname "MyCProgram.c"

2 .

3 ./MybashProgram.sh . /Program.c

6. inode 번호를 사용하여 파일 찾기

모든 파일에는 고유한 inode 번호가 있습니다. , 이를 통해 파일을 구별할 수 있습니다. 이름이 비슷한 두 개의 파일을 만듭니다. 예를 들어 하나는 뒤에 공백이 있고 다른 하나는 공백이 없습니다.

1 touch "test-file-name"

2

3 # touch "test-file-name"

4 [참고: 끝에 공백]

5

6 # ls -1 test*

7 test-file-name

8 test-file-name

ls 출력에서 ​​어떤 파일에 뒤에 공백이 있는지 알 수 없습니다. -i 옵션을 사용하면 파일의 inode 번호를 볼 수 있어 두 파일을 구별할 수 있다.

1 ls -i1 test*

2 16187429 test-file-name

3 16187430 test-file-name

표시된 대로 수행할 수 있습니다. 아래 find 명령에 inode 번호를 지정하십시오. 여기서 find 명령은 inode 번호로 파일 이름을 바꿉니다.

1 find -inum 16187430 -exec mv {} new-test-file-name

2

3 # ls -i1 *test*

4 16187430 new-test-file-name

5 16187429 test-file-name

위와 같이 이름이 잘못된 파일에 대해 뭔가를 하고 싶다면 뭔가를 할 수 있습니다. 작동할 때 이 기술. 예를 들어, file?.txt라는 파일의 이름에는 특수 문자가 있습니다. "rm file?.txt"를 실행하면 아래 표시된 세 파일이 모두 삭제됩니다. 따라서 아래 단계에 따라 "file?.txt" 파일을 삭제하세요.

1 ls

2 file1.txt file2.txt file?.txt


각 파일의 inode 번호를 찾으세요.

1 ls -i1

2 804178 file1.txt

3 804179 file2.txt

4 804180 file?.txt

아래와 같이 특수 기호가 있는 파일 이름을 제거하려면 inode 번호를 사용하십시오.

1 찾기 -inum 804180 -exec RM {};

2

3# ls

4 file1.txt file2.txt

5 [참고: 이름이 "file?.txt"인 파일은 이제 제거되었습니다.]

7. 파일 권한에 따라 파일을 찾습니다.

다음 작업이 합리적입니다.

지정된 권한이 있는 파일 찾기

다른 권한 비트를 무시하고 지정된 권한과 일치하는지 확인

주어진 8진수/표기법으로 표현된 권한을 기준으로 검색

이 예는 , 디렉토리에 다음 파일이 포함되어 있다고 가정합니다. 이러한 파일에는 서로 다른 권한이 있습니다.

1 ls -l

총 2개 0

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 other_can_ also_read

8 ---r------ 1 root root 0 2009-02-19 20:27 other_can_only_read

그룹 읽기 권한 문서를 찾아보세요. 파일에 대한 다른 권한은 무시하고 동일한 그룹의 사용자에 대한 읽기 권한이 있는 현재 디렉터리의 파일을 찾으려면 다음 명령을 사용합니다.

1 find . -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 find . -perm g=r -type f -exec ls -l {}

2 ---r------ 1 루트 루트 0 2009-02- 19 20:27 ./others_can_only_read

그룹 사용자에 대한 읽기 전용 권한이 있는 파일을 찾습니다(8진수 권한 형식 사용).

1 find . -perm 040 -type f -exec ls -l {}

2 ---r------ 1 루트 루트 0 2009-02-19 20 :27 ./others_can_only_read

8. 홈 디렉터리와 하위 디렉터리에서 빈 파일(0바이트 파일)을 모두 찾습니다

다음 명령의 출력 파일 대부분은 잠긴 파일이며 다른 프로그램에서 생성된 위치 호더입니다.

1 find ~ -empty

홈 디렉터리의 빈 파일만 나열합니다.

1 find . -maxlength 1 -empty


현재 디렉터리에 숨겨지지 않은 빈 파일만 나열합니다.

1 find . -maxlength 1 -empty -not -name ".*"

9. 가장 큰 파일 5개를 찾습니다.

다음 명령은 현재 디렉터리와 하위 디렉터리에 가장 큰 파일 5개. 명령이 처리해야 하는 파일 수에 따라 시간이 걸립니다.

1 find . -type f -exec ls -s {} ; sort -n -r | head -5

10.

방법은 가장 큰 파일 5개를 찾는 것과 유사하지만 정렬 순서가 내림차순이라는 점이 다릅니다.

1 find . -type f -exec ls -s {} ; | sort -n | head -5

위 명령에서 보이는 내용은 비어 있을 가능성이 높습니다. 파일(0바이트 파일)입니다. 따라서 다음 명령을 사용하면 0바이트 파일 대신 가장 작은 파일을 나열할 수 있습니다.

1 find . -not -empty -type f -exec ls -s {} | sort -n | head -5

11. type

소켓 파일만 찾기

1 find . 모든 일반 파일 찾기

1 find . -type f

숨겨진 파일 모두 찾기

1 find .type f -name ".*"

숨겨진 디렉터리 모두 찾기

1 find -type d -name ".*"

12. 다른 파일과 수정 시간을 비교하여 파일 찾기

지정된 파일에 표시 나중에 수정되었습니다. 아래 find 명령은 일반_파일 이후에 생성되고 수정된 모든 파일을 표시합니다.

01 ls -lrt

02 총 0

03 -rw-r------ 1 루트 루트 0 2009-02-19 20:27 other_can_ also_read

04 ---r------ 1 루트 루트 0 2009-02-19 20:27 other_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  

09  

10 # find -newer 보통_파일

11 .

12 ./everybody_read

13 ./all_for_all

14 ./no_for_ all

13. 파일 크기별로 파일 찾기

파일 크기별로 파일을 찾으려면 -size 옵션을 사용하세요.

지정된 파일보다 큰 파일 찾기

1 find ~ -size +100M

지정된 파일보다 작은 파일 찾기

1 find ~ -size -100M

주어진 크기와 일치하는 파일 찾기

1 find ~ -size 100M

참고: – 주어진 크기보다 작음을 의미하고, +는 주어진 크기보다 크다는 것을 의미합니다. 주어진 크기와 정확히 동일한 크기를 나타내는 기호는 없습니다.

14. 일반적으로 사용되는 찾기 작업에 별칭을 지정하세요.

유용한 항목을 찾으면 별칭을 지정할 수 있습니다. 그리고 원하는 곳 어디에서나 실행하세요.

일반적으로 a.out 파일을 삭제하는 데 사용됩니다.

1 alias rmao="find . -iname a.out -exec rm {} ;"

2 # rmao

c 프로그램에서 생성된 코어 파일을 삭제합니다.

1 alias rmc="find . -iname core -exec rm {} ;"

2 # rmc

15. 대용량 패키지 파일을 삭제하려면 find 명령을 사용하세요

다음 명령은 100M보다 큰 *.zip 파일을 삭제합니다.

1 find / -type f -name *.zip -size +100M -exec rm -i {} ;"

모든 폭우 100M *.tar 파일을 삭제하려면 별칭 rm100m을 사용하세요. . 사용 동일한 아이디어를 사용하여 rm1g, rm2g, rm5g라는 범주 이름을 만들어 1G, 2G, 5G

1 alias rm100m="find / -type f -name *. tar -size +.100M -exec rm -i {} ;"

2 # alias rm1g="find / -type f -name *.tar -size +1G -exec rm -i {} ;"

3 # alias rm2g="find / -type f -name *.tar -size +2G -exec rm -i {} ;"

4 # alias rm5g="find / - f -name * .tar -size +5G -exec rm -i {} ;"

5

6 # rm100m

7 # rm1g

8 # rm2g

9 # rm5g

명령 예제 찾기(2부)

추가 15개의 실제 관련 기사 Linux에서 명령 예제를 찾으려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿