서버의 특정 위치에 파일이 있다는 것은 알지만 정확한 위치를 모를 때, 폴더별로 검색하고 싶은 유혹에 빠지기 쉽습니다. 하지만 이는 좋지 않은 생각입니다. 리눅스 환경에서는, 찾다 이 기능은 바로 이러한 목적으로 만들어졌습니다. 이름, 유형, 크기, 날짜, 권한별로 검색한 후 결과가 명확할 때만 조치를 취하십시오.
특히 운영 서버에서는 `find` 명령어를 신중하게 사용하시기 바랍니다. 루트 권한으로 실행하면 엄청난 수의 파일을 검색하고, 권한 오류를 표시하며, 디스크에 불필요한 부하를 줄 수 있습니다. 가장 광범위한 명령어를 입력하는 것이 아니라, 검색 범위를 빠르게 좁히는 것이 중요합니다.

먼저 제대로 된 곳을 찾아보세요.
기본 형식은 간단합니다. 시작 폴더를 지정한 다음 검색 조건을 지정하면 됩니다.
/etc -name "ssh_config"를 찾으세요
여기서 리눅스는 라는 이름의 파일을 찾고 있습니다. ssh_config ~ 안에 /등 그리고 하위 폴더까지 모두 확인하세요. 파일이 특정 위치에 있다는 것을 이미 알고 있다면 해당 위치부터 시작하는 것이 좋습니다. 더 빠르고 읽기 쉬우며, 시스템 전체를 불필요하게 스캔하는 것을 방지할 수 있습니다.
대소문자 구분을 무시하려면 다음을 사용하세요. -iname :
/var/www 디렉터리를 찾고 "*.conf" 파일을 생성합니다.
루트부터 시작하면 다음과 같은 메시지가 표시될 것으로 예상됩니다. 허가가 거부되었습니다이것이 반드시 문제는 아닙니다. 숨길 수는 있지만, 특히 권리 문제를 찾으려는 목적이라면 체계적으로 숨기지는 마세요.
find / -name "nginx.conf" 2>/dev/null
파일 형식별 검색 제한
서버에서 이름은 파일, 폴더, 심볼릭 링크 또는 기타 여러 가지에 해당할 수 있습니다. 추가 -친절한 불필요한 결과를 피하기 위해.
/var/log 파일을 찾고 유형 f -name "*.log" 명령을 실행하세요.
/var/www -type d -name "cache"를 찾으세요
/usr/bin을 찾고 유형 l -name "python*"을 지정합니다.
-f 유형 표준 파일을 대상으로 합니다. -d형 대상 폴더. -유형 l 이 필터는 심볼릭 링크를 대상으로 합니다. 이 작은 필터는 결과에서 많은 노이즈를 제거합니다.
나무 아래쪽으로 너무 깊이 내려가고 싶지 않을 때는 깊이를 제한할 수도 있습니다.
/var/www -maxdepth 2 -type d -name "cache"를 찾으세요
이 기능은 웹사이트, 백업 파일 또는 하위 디렉터리가 많은 사용자 폴더에 매우 유용합니다.
파일을 삭제하기 전에 먼저 용량이 큰 파일을 찾으세요.
서버의 디스크 공간이 부족할 때 find 명령어를 사용하면 용량이 큰 파일을 찾을 수 있습니다. 먼저 파일을 삭제하지 말고 목록을 확인해 보세요.
/var -type f -size +100M -print를 찾으세요
/home -type f -size +1G -print를 찾으세요
크기를 읽기 쉬운 방식으로 표시하려면 다음 명령을 실행할 수 있습니다. ls -lh 각 결과에 대해:
find /var -type f -size +100M -exec ls -lh {} +
공간을 확보하는 것이 목표라면 바로 다음 단계로 넘어가지 마세요. RM먼저, 찾은 내용을, 특히 다음 사항들을 꼼꼼히 확인하세요. /var/lib, /var/로그 또는 응용 프로그램 폴더. 데이터베이스 파일이나 캐시는 특정 삭제 방법이 필요할 수 있습니다.
이 주제에 대해 보다 포괄적인 접근 방식을 원하시면 다음 가이드를 참고하실 수 있습니다. 리눅스 디스크 공간이 부족할 때 사용할 명령어.
수정된 날짜로 검색
최근 변경 사항을 확인하려면 날짜 옵션을 활용하는 것이 매우 유용합니다. 예를 들어, 지난 7일 동안 수정된 파일은 다음과 같습니다.
/etc -type f -mtime -7을 찾으세요
30일 이상 전에 수정된 파일:
/var/log -type f -mtime +30을 찾으세요
-m시간 며칠 안에 완료됩니다. 더 자세한 검색을 원하시면 다음도 참고하세요. -mmin몇 분 안에 효과를 볼 수 있습니다.
/tmp -type f -mmin -60을 찾으세요
이는 구성 변경, 업데이트 또는 스크립트 실행 후 파일 생성 위치를 명확하게 알려주지 않는 경우에 유용합니다.
권한 침해 없이 권한별로 필터링
찾기 기능은 권한을 기반으로 검색할 수도 있습니다. 예를 들어 폴더에서 실행 가능한 스크립트를 찾으려면 다음과 같이 합니다.
/usr/local/bin -type f -perm /111을 찾으세요
너무 쉽게 접근할 수 있는 파일을 식별하려면 누구나 편집할 수 있는 파일을 찾아보면 됩니다.
/var/www -type f -perm -002 -exec ls -lh {}를 찾으세요;
결과 목록을 다음과 같이 수정하지 마십시오. chmod 컨텍스트를 이해하지 않고 전역적으로 권한을 설정하는 것은 위험할 수 있습니다. Linux 권한 설정은 애플리케이션 충돌로 이어질 수 있습니다. 이 부분을 다시 검토해야 하는 경우, 다음 문서를 참조하십시오. Linux에서 재귀적 chmod 실행 왜 우리가 계속 경계해야 하는지 정확하게 설명해 줍니다.
재앙을 일으키지 않고 -exec 옵션을 사용하는 방법
-exec 이 기능을 사용하면 발견된 파일에 명령을 실행할 수 있습니다. 강력한 기능이므로 가장 큰 피해를 입힐 수 있는 부분이기도 합니다.
항상 결과를 먼저 표시하세요:
/tmp를 찾고 유형 f를 지정하고 이름 "*.tmp"를 출력합니다.
그런 다음 목록이 정확한 경우에만 삭제 전 확인을 요청할 수 있습니다.
find /tmp -type f -name "*.tmp" -exec rm -i {} +
부부 {} 발견된 파일을 나타냅니다. + find 명령어에 가능한 경우 여러 결과를 하나의 명령으로 그룹화하도록 요청하여 각 파일에 대해 프로세스를 실행하는 것을 방지합니다.
find /var/log -type f -name "*.log" -exec ls -lh {} +
제 조언은 간단합니다. 목록을 검토하기 전까지는 아무것도 자동으로 삭제하지 마세요. 서버에서는 1초를 절약하는 것이 백업에서 복원하는 것보다 훨씬 중요합니다.
프로덕션 환경에서 찾기 전에 빠르게 확인할 수 있는 방법입니다.
- 가능한 한 가장 정확한 파일로 시작하십시오.
- 추가하다
-f 유형,-d형또는-유형 l가능한 한 빨리; - 사용
-최대 깊이너무 심층적인 검색을 피하고 싶다면; - 결과를 표시
-인쇄또는-exec ls -lh조치를 취하기 전에; - 파괴적인 명령은 가능한 한 마지막에, 그리고 확인 절차를 거치도록 하십시오.
참고 자료는 GNU Findutils 설명서를 참조하십시오. 찾다 그리고 페이지 찾기(1) man7에서 가져온 내용입니다. 파일을 찾은 후 로그를 확인해야 하는 경우, 다음 가이드를 참조하세요. Linux의 꼬리 이 방법은 그것을 잘 보완해 줍니다.