리눅스 find 명령어 쉽고 유용한 TOP 50 2020년

리눅스 find 명령어

리눅스 find 명령어는 Linux 사용자가 시스템에서 특정 유형의 파일을 효과적으로 검색할 수 있는 유틸리티 중 하나입니다. 강력한 검색 기능을 가능하게 해주는 명령 줄 유틸리티이며, 숙련된 사용자가 쉽게 사용할 수 있는 도구가 될 수 있습니다. find 명령어를 자세히 익히고 Linux 기술을 발전시키시려면 잘 찾아오셨습니다.

오늘날 Linux 및 BSD 시스템이 전 세계적으로 인기를 얻는 주요 이유 중 하나는 기본 도구 및 유틸리티입니다. Linux는 명령 줄에서 직접 파일을 검색하거나 액세스하는 최상의 방법을 제공합니다.

리눅스 명령어 모음 BEST 50 초보자 및 전문가용 유용한 리눅스 명령어 모음

리눅스 find 명령어 50가지

우리가 리눅스 명령어를 배우는 가장 좋은 방법은 직접 시도해 보는 것입니다. 아래 표시된 명령은 데스크톱 환경에 관계없이 모든 리눅스 배포판에서 제대로 작동합니다. 따라서 Ctrl +Alt + T를 사용하여 터미널을 열고 여기에서 명령어를 복사하여 붙여 넣으면 리눅스 find 명령어를 빠르게 시도할 수 있습니다. 일상적인 생활에서 이러한 명령어를 최대한 활용하여 단기간에 마스터해보세요.

리눅스 find 명령어 구조

리눅스에서 find 명령어는 다음과 같은 구조를 갖습니다.

찾기[경로] [표현] [동작]

여기서 경로(paths)란 지정된 파일을 검색하기 위해 “찾기(find)” 할 디렉터리를 의미한다. 이 식을 사용하면 일부 기준에 따라 파일을 필터링할 수 있는 반면 동작(actions)은 파일에 대해 셸 명령을 실행할 수 있다. 기본 동작은 인쇄로, 어떤 경로에서든 표현(expression)에 의해 일치하는 파일을 간단하게 인쇄한다. find는 파일을 반복적으로 보여준다. 즉, 먼저 모든 디렉터리를 횡단한 다음 그에 따라 결과를 출력할 것이다.

기본적인 리눅스 find 명령어

기본적인 find 명령어를 사용하여 find가 무엇을 할 수 있는지 확인할 수 있습니다 이러한 명령은 매우 간단하며, 다른 명령 줄 유틸리티에 대한 사전 경험도 필요하지 않습니다.

기본적인 리눅스 find 명령어
기본적인 리눅스 find 명령어
1. 현재 디렉터리 안에 있는 모든 파일을 나열

$ find

현재 디렉터리에 있는 모든 파일을 출력합니다. 현재 디렉터리에 하위 디렉터리가 포함된 경우 해당 디렉터리도 같이 표시됩니다. 이 명령은 아래 명령과 동일합니다.

$ find -print.

2.  특정 디렉터리에 있는 모든 파일을 나열

$ find /folder

이 명령은 / folder 디렉터리 안에 있는 모든 파일을 나열합니다. 이 명령을 사용하여 리눅스 시스템에서 특정 경로의 모든 파일을 나열할 수 있습니다.

3. 특정 파일 검색 명령어

$ find -name test.txt

이 명령어는 현재 디렉터리와 다른 모든 하위 디렉터리에서 test.txt라는 파일을 검색합니다. 특정 파일을 검색해야 할 경우 이 명령을 사용하십시오.

4. 디렉터리에서 특정 파일 검색

$ find /Docs -name test.txt

이 명령어는 / Docs 폴더에서 test.txt라는 파일을 검색합니다. 이 명령어를 사용할 때 절대 경로와 상대 경로를 모두 사용할 수 있습니다.

5. 여러 디렉터리에서 파일 검색

$ find /opt /usr /var -name foo.scala -type f

여러 디렉터리에서 파일을 동시에 검색할 때 리눅스 find 명령어를 사용할 수 있습니다. 검색할 때 디렉터리 이름을 차례로 입력한 다음 공백을 두기만 하시면 됩니다.

6. 대소문자를 무시한 파일 검색

$ find -iname test.txt

이 명령은 대소문자를 구분하지 않고 test.txt 파일을 검색합니다. 따라서 test.txt 및 Test.txt라는 두 개의 파일이 있으면 두 개 파일이 모두 표시됩니다. -iname 옵션을 사용하면 find 명령을 실행할 수 있습니다.

7. 현재 디렉터리 내부의 폴더를 검색

$ find -type d

이 명령은 현재 작업 중인 디렉터리 아래에 있는 모든 디렉터리를 나열합니다. 특정 디렉터리를 나열하기 위해 이름 옵션을 추가할 수도 있습니다.

8. 디렉터리에서 특정 폴더를 검색

$ find /home -type d -name users

이 명령어는 / home 디렉터리에서 users라는 폴더를 검색합니다. 대소문자를 구분하지 않고 검색하기 위해 -name 대신 -iname 옵션을 추가할 수도 있습니다.

9. 이름을 사용하여 PHP 파일을 검색

$ find -type f -name test.php

이 명령어는 현재 작업 중인 디렉터리 내에 존재하는 test.php라는 PHP 파일을 나열합니다.

10. 모든 PHP 파일을 검색

$ find -type f -name “*.php”

리눅스에서 이 find 명령은 현재 작업 디렉터리에 있는 모든 PHP 파일을 검색합니다. 특정 디렉터리에만 있는 PHP 파일을 검색하기 위한 유형 앞에 경로 옵션을 추가할 수도 있습니다.

11. 모든 심볼릭 링크 찾기

$ find /usr -type l

위의 명령은 현재 디렉터리에 있는 모든 심벌릭 링크를 검색하고 그에 따라 출력합니다.

12. 확장자가 다른 파일을 검색

$ find . -type f \( -name “*cache” -o -name “*xml” -o -name “*html” \)

위의 find 명령어는 확장자가 다른 cache라는 파일을 검색합니다. name 옵션 다음에 -o 플래그를 추가하여 추가 확장자를 찾을 수 있습니다.

권한을 기준으로 파일 찾기

find 명령을 사용하면 리눅스 사용자가 권한 상태에 따라 파일을 검색할 수 있습니다. 시스템에 여러 명의 사용자가 있고 아무도 데이터에 무단으로 액세스하지 않도록 해야 할 때 유용합니다.

13. 777권한 세트가 있는 파일 찾기

$ find -type f -perm 0777 -print

이 명령어는 사용 권한이 777로 설정된 현재 작업 중인 디렉터리의 모든 파일을 나열합니다. 모든 사용자가 읽고 쓰고 실행할 수 있는 파일입니다.

14. 777 권한이 없는 파일 찾기

$ find / -type f ! -perm 777

리눅스에서 이 find 명령어는 777 이외의 권한이 설정된 파일만 검색합니다. 검색 결과를 좁히기 위해 /를 다른 위치로 바꿀 수 있습니다.

15. 644 권한이 있는 SGID 파일 찾기

$ find / -perm 2644

이 find 명령어는 권한 상태가 644로 설정된 SGID 파일 만 찾습니다. SGID 파일은 소유하지 않거나 액세스할 수 없는 파일에 임시로 액세스할 수 있습니다.

16. 551 권한이 있는 모든 고정 비트 파일 찾기

$ find / -perm 1551

고정 비트 파일은 파일 또는 폴더 세트로, 파일을 만든 사용자 또는 루트 사용자만 이름을 바꾸거나 삭제할 수 있습니다. 이 명령어는 시스템의 모든 스티키 비트 파일을 551 권한으로 표시합니다.

17. 모든 SUID 파일 찾기

$ find / -perm /u=s

SUID 파일을 사용하면 파일 그룹 소유자나 루트 사용자 이외의 사용자가 파일 그룹을 임시로 소유할 수 있습니다. 이 find 명령어는 현재 Linux 시스템에 있는 모든 SUID 파일을 나열합니다.

18. 모든 SGID 파일 찾기

$ find / -perm /g=s

SGID 파일은 SGID 권한이 있는 파일이 실행될 때 원래 소유자가 프로세스를 실행하는 것처럼 실행된다는 점을 제외하고 여러 가지 면에서 SUID 파일과 유사합니다. 이 find 명령어는 권한 상태에 관계없이 모든 단일 SGID 파일을 나열합니다.

19. 읽기 전용 파일 찾기

$ find / -perm /u=r

읽기 전용 파일은 Linux 사용자가 파일을 쓰거나 실행하는 것을 금지합니다. 파일 소유자 또는 루트 사용자만 작성하거나 실행할 수 있습니다. 이 find 명령어는 현재 시스템에 있는 모든 읽기 전용 파일을 표시합니다.

20. 모든 실행 파일 찾기

$ find / -perm /a=x

실행 파일은 이진 파일과 같이 실행될 수 있는 파일입니다. 위의 Linux“find command”는 시스템에서 그러한 모든 파일을 검색하여 그에 따라 나열합니다.

21. 777 권한과 644 ~ ch644의 모든 파일 찾기

$ find / -type f -perm 0777 -print -exec chmod 644 {} \;

위의 find 명령은 777 권한이 있는 모든 파일을 검색하고 chmod 명령을 사용하여 권한 상태를 644로 변경합니다. 이제 644 권한으로 파일을 읽거나 쓸 수 있습니다.

22. 777 권한과 755 ~ chmod의 모든 디렉토리 찾기

$ find / -type d -perm 777 -print -exec chmod 755 {} \;

이 리눅스 find 명령은 777 권한이 있는 모든 디렉터리를 검색하고 권한 상태를 755로 변경합니다. 이는 실제로 소유자에게만 전체 권한을 허용하고 다른 사용자에 대한 읽기 및 실행 권한을 부여하는 것입니다.

find를 사용하여 특정 파일 검색하기

찾기는 특정 파일을 효과적으로 검색하는데 사용할 수 있습니다. find 명령을 사용하여 일부 기준에 따라 파일을 선택하고 파일 삭제와 같은 쉘 작업을 수행할 수 있습니다.

23. 파일을 찾아서 제거하기

$ find -type f -name “test.txt” -exec rm -f {} \;

이 리눅스 find 명령어는 많은 파일 목록에서 파일을 삭제해야 할 때 사용됩니다. 이 경우 먼저 현재 디렉터리에서 test.txt라는 파일을 찾아 rm-f를 사용하여 제거합니다.

24. 여러 파일을 찾아서 한번에 제거하기

$ find -type f -name “*.mp3” -exec rm -f {} \;

찾기 명령은 특정 파일 형식의 큰 배열을 검색하여 한 번에 제거하는 데 유용하게 사용됩니다. 위 명령어는 시스템에서. mp3 파일을 검색하여 프롬프트 없이 삭제합니다. 삭제가 발생할 때마다 프롬프트를 표시하기 위해 rm 부분과 함께 대화식 플래그 -i를 추가할 수 있습니다.

25. 시스템에서 모든 빈 파일 찾기

$ find /tmp -type f -empty

빈 파일은 시스템 리소스를 매우 짧은 시간 내에 불러올 수 있습니다. find 명령을 사용하여 모든 빈 파일을 나열하려면 위 명령을 사용하십시오. -exec rm -f {} \;를 추가하여 이러한 파일을 삭제할 수 있습니다. 위의 명령과 동일합니다.

26. 시스템에서 모든 빈 폴더 찾기

$ find /tmp -type d -empty

이 명령은 / tmp 디렉터리 안에 있는 모든 빈 폴더를 검색합니다. 이를 사용하여 다른 디렉터리에서도 빈 폴더를 찾을 수 있으며, 이전과 같이 원하는 경우 삭제할 수도 있습니다.

27. 시스템에서 모든 숨겨진 폴더 찾기

$ find /home -type f -name “.*”

숨겨진 폴더는 일반적으로 리눅스 시스템에서 단일 점 (.)으로 시작합니다. 위 명령을 사용하여 / home 디렉터리에 있는 모든 숨겨진 폴더를 검색하십시오.

사용자를 기준으로 파일을 찾는 리눅스 find 명령어

find 명령어는 사용자 그룹을 기반으로 파일을 검색할 때도 유용합니다. Linux find 명령을 사용하여 특정 사용자 그룹에 대한 특정 파일을 검색하고 파일 권한을 매우 빠르게 수정할 수 있습니다.

28. 사용자에게 속한 파일 찾기

$ find / -user root -name test.txt

리눅스에서 find 명령을 사용하여 특정 사용자가 소유 한 단일 파일을 검색할 수 있습니다. 위 명령어는 사용자 루트에 속하는 / 디렉터리에서 test.txt라는 파일을 검색합니다.

29. 사용자에게 속한 모든 파일 찾기

$ find /home -user username

위의 리눅스 명령어는 사용자 “username”에 속하는 / home 디렉토리의 모든 파일을 검색합니다. 자신에게 속한 모든 파일을 찾으려면 “username” 을 리눅스 사용자 이름으로 바꾸셔야 합니다.

30. 그룹에 속한 도믄 파일 찾기

$ find /home -group programmer

리눅스 파일은 일반적으로 일부 그룹에 속합니다. 위의 Linux 명령을 사용하면 “programmer”라는 특정 그룹에 속하는 모든 파일을 검색하여 터미널에 출력할 수 있습니다. “programmer”를 검색하려는 그룹 이름으로 바꾸어 사용하세요.

31. 사용자를 위한 특정 파일 찾기

$ find /home -user bob -iname “*.txt”

find 명령어를 사용하여 사용자에게 속한 특정 파일을 검색할 수 있습니다. 위의 명령은 이것을 수행하고 사용자 bob에 속하는 모든. txt 형식의 파일을 검색합니다. bob을 사용자 이름으로 바꾸고. txt를 다른 파일 형식으로 바꾸면 자신에게 속한 특정 유형의 파일을 찾을 수 있습니다.

시간을 기준으로 파일 찾는 리눅스 find 명령어

시스템 관리자는 시스템을 효과적으로 모니터링할 수 있습니다. 수정 시간, 액세스 시간 등을 기준으로 파일을 검색할 수도 있습니다.

32. 지난 50일 동안 수정 된 모든 파일 찾기

$ find / -mtime 50

find 명령어를 사용하면 지정된 시간 내에 수정 된 파일을 검색 할 수 있습니다. 위 명령은 50일 전에 수정 된 시스템의 모든 파일을 검색합니다.

33. 지난 50일 동안 액세스 한 모든 파일 찾기

$ find / -atime 50

-atime 옵션은 정해진 기간 내에 액세스 된 파일을 보여줍니다. 위의 명령은 50일 전에 액세스 한 시스템의 모든 파일을 나열합니다.

34. 지난 50-100일 동안 수정된 모든 파일 검색하기

$ find / -mtime +50 –mtime -100

리눅스에서 find 명령을 사용하면 지정된 시간 범위에서 수정된 모든 파일을 검색할 수 있습니다. 이를 위해 + 및 – 연산자가 -mtime 과 함께 사용됩니다. 위의 명령은 지난 50일에서 100일 동안 수정 한 모든 파일을 찾습니다.

35. 지난 1시간 동안 변경된 모든 파일 찾기

$ find / -cmin -60

이 명령은 지난 1시간 동안 변경된 모든 파일을 찾아서 검색합니다. 검색 범위를 좁히기 위해 /를 특정 디렉터리로 바꿀 수도 있습니다. 그 시간에 변경된 파일을 찾으려면 60을 120과 같은 다른 숫자로 변경하십시오 (120의 경우 2시간)

36. 지난 1시간 동안 수정된 모든 파일 찾기

$ find / -mmin -60

위의 명령은 지난 1시간 내에 수정 된 모든 파일을 보여줍니다. 목적에 필요한 기간을 변경하려면 60을 다른 숫자로 변경하여 사용하십시오.

37. 지난 1시간 동안 액세스 한 모든 파일 찾기

$ find / -amin -60

이 명령은 지난 1시간 동안 액세스 한 모든 파일을 표시합니다. 앞의 두 명령과 마찬가지로 원하는 결과를 위해 60을 자유롭게 변경해서 사용하십시오.

크기를 기준으로 파일 검색하는 find 명령어

때로는 크기에 따라서 파일을 검색해야 할 경우가 있습니다 이 점에서도 find 명령어는 찾기가 편리합니다. 크기에 따라 파일을 보다 정확하게 검색하기 위해 다른 옵션을 추가 할 수도있습니다.

38. 크기가 50MB인 파일 찾기

$ find / -size 50M

리눅스에서 이 “find command”는 50MB가 넘는 모든 파일을 검색합니다. 교체 / 더 효율적으로 검색 결과를 좁히기 위한 다른 크기와 원하는 디렉터리와 수치를 변경해서 사용하십시오.

39. 100MB가 넘는 모든 파일 찾기

$ find / -size +100M

위의 명령은 / 디렉터리 안에 100MB가 넘는 모든 파일을 검색합니다. 원하는 결과를 얻기 위해 다른 파일 크기로 100M을 변경할 수 있습니다.

40. 50MB에서 100MB 사이의 파일 검색하기

$ find / -size +50M -size -100M

때로는 지정된 크기 범위 내에서 파일을 찾아야 할 수도 있습니다. 위의 명령은 50MB에서 100MB 사이의 모든 파일을 표시합니다. 특정 검색 기준과 일치하도록 선택적 매개 변수를 변경해서 사용하십시오.

41. 500MB가 넘는 모든 파일 삭제하기

$ find /Movies -size +500M -exec rm -rf {} \;

find 명령어는 특정 제한을 초과하는 파일을 검색하고 터미널에서 즉시 삭제하는데도 유용하게 사용됩니다. 폴더에 오래된 영화가 있고 한 번에 삭제하려고 한다고 가정합니다. 위의 명령으로 정확하게 작업을 수행할 수 있습니다. / Movies를 파일이 있는 폴더 이름으로 바꾸신 후 사용하십시오.

42. 가장 큰 파일 찾기

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

위의 find 명령어는 현재 작업 디렉토리와 하위 디렉토리에있는 가장 큰 5 개의 파일을 검색합니다.

43. 가장 작은 파일 찾기

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

리눅스에서 find 명령어를 사용하여 가장 작은 파일을 표시할 수도 있습니다. 이 명령은 현재 디렉터리에 있는 가장 작은 5개의 파일을 검색합니다.

기타 다른 find 명령어

리눅스의 find 명령어는 포함된 텍스트를 기반으로 파일 찾기, 파일 검색 및 삭제, 패턴을 기반으로 파일 찾기 등과 같은 많은 추가 기능을 제공합니다. 아래 명령은 이러한 기능 중 일부를 간단히 보여드립니다.

44. 특정 파일 찾기 및 삭제

$ find / -type f -name *.mp3 -size +10M -exec rm {} \;

이 리눅스 find 명령을 사용하면 시스템에서 10MB 이상의 공간을 차지하는 모든 .mp3 파일을 찾아서 삭제할 수 있습니다. .mp3을 다른 파일 형식 및 특정 유형의 파일에 대한 size 매개 변수로 바꿀 수도 있습니다.

45. 패턴과 일치하지 않는 파일 찾기

$ find /home -type f -not -name “*.html”

리눅스에서 위의 find 명령어는 / home 디렉토리에서 .html로 끝나지 않는 모든 파일을 검색합니다. -not 옵션을 사용하면 find가 이 작업을 수행할 수 있습니다.

46. 파일 안에서 텍스트로 파일 찾기

$ find . -type f -name “*.java” -exec grep -l StringBuffer {} \;

grep을 사용하여 포함된 텍스트를 기반으로 파일을 찾을 수 있습니다. 위의 리눅스 find 명령어는 StringBuffer가 포함 된 .java 파일을 검색합니다. grep에 -i 플래그를 추가하면 이 검색에서 대소문자를 무시합니다.

47. 파일 찾기 및 복사

$ find . -type f -name “*.mp3” -exec cp {} /home/MusicFiles \;

find 명령어를 특정 파일을 찾아서 새 위치로 복사하는 데 사용할 수 있습니다. 위 명령은 현재 디렉토리에서 모든 .mp3 파일을 찾아 / home / MusicFiles 폴더에 복사합니다.

48. 파일 찾기 및 이동

$ find . -type f -name “*.jpg” -exec cp {} /home/Pictures \;

파일을 효과적으로 이동하는 데에도 Find 명령을 사용할 수 있습니다. 위의 명령은 현재 디렉터리에 있는 모든 .jpg 파일을 검색하여 / home / Pictures 디렉터리로 옮깁니다.

49. 파일 찾기 및 타르

$ find . -type f -name “*.java” | xargs tar cvf myfile.tar

find 명령어를 사용하여 특정 파일을 검색하여 tarball로 보관할 수 있습니다. 위 명령은 현재 디렉터리에서 모든 .java 파일을 찾아 myfile.tar라는 tar 파일로 압축합니다.

50. 필터링 오류 메세지

$ find [paths] [expression] [actions] 2>/dev/null

find 명령어를 시도하는 동안 ‘Permission Denied’ 와 같은 오류가 발생할 수 있습니다. 위와 같이 이러한 오류를 / dev / null로 리디렉션 할 수 있습니다.

마치며…

리눅스의 find 명령어는 시스템을 효과적으로 모니터링하거나 파일을 자주 처리하는데 사용할 수 있는 가장 유용한 명령 줄 도구 중 하나입니다. 다양한 find 명령어를 현명하게 구현하면 Linux 고급 사용자가 될 수 있습니다. 매일 사용하기에 가장 유용한 찾기 명령을 설명하기 위해 최선을 다했습니다. 일상적인 생활에서 이러한 명령을 활용하여 Linux 시스템을 최대한 활용할 수 있습니다.

이상으로 리눅스 find 명령어 모음 설명을 마치겠습니다.

error: