Tutoriel Linux

리눅스에서 파일 찾기: 서버 전체를 수동으로 검색하지 않고 파일을 찾는 방법

Débutant2 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

서버의 특정 위치에 파일이 있다는 것은 알지만 정확한 위치를 모를 때, 폴더별로 검색하고 싶은 유혹에 빠지기 쉽습니다. 하지만 이는 좋지 않은 생각입니다. 리눅스 환경에서는, 찾다 이 기능은 바로 이러한 목적으로 만들어졌습니다. 이름, 유형, 크기, 날짜, 권한별로 검색한 후 결과가 명확할 때만 조치를 취하십시오.

특히 운영 서버에서는 `find` 명령어를 신중하게 사용하시기 바랍니다. 루트 권한으로 실행하면 엄청난 수의 파일을 검색하고, 권한 오류를 표시하며, 디스크에 불필요한 부하를 줄 수 있습니다. 가장 광범위한 명령어를 입력하는 것이 아니라, 검색 범위를 빠르게 좁히는 것이 중요합니다.

Tux는 돋보기를 사용하여 리눅스 서버에서 파일을 검색합니다.
찾기 명령어를 사용하면 각 폴더를 수동으로 검색하지 않고도 Linux 디렉터리 트리에서 파일을 찾을 수 있습니다.

먼저 제대로 된 곳을 찾아보세요.

기본 형식은 간단합니다. 시작 폴더를 지정한 다음 검색 조건을 지정하면 됩니다.

/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의 꼬리 이 방법은 그것을 잘 보완해 줍니다.

sudo apt update && sudo apt upgrade