Linux 팁: 파일 오래된 순으로 나열하기

소개

오랫동안 건드리지 않은 파일을 디렉터리에서 찾는 방법이 궁금한 적이 있나요? 오래된 파일을 정리하거나, 데이터를 보관하거나, 오래된 파일을 확인할 때, Linux의 find 명령이 가장 좋은 해결책입니다. 이 팁에서는 간단하면서도 강력한 명령을 사용해 Linux에서 파일을 오래된 순으로 나열하는 방법을 보여 드리겠습니다.


명령

find /path/to/files -type f -name '*.jpg' -mtime +30 -exec ls -l {} \;

이 명령을 사용하면 마지막 수정 날짜를 기준으로 파일을 찾고, 유형이나 이름으로 필터링하며, 파일에 대한 자세한 정보를 표시할 수 있습니다.


명령 분석

1. /path/to/files

검색할 디렉터리를 지정합니다. 살펴보려는 실제 폴더 경로로 바꾸세요.

  • 예: 사진 보관함을 검색하려면, ~/Pictures.

2. -type f

-type 옵션은 검색할 항목의 유형을 지정합니다.

  • f: 파일만을 가리킵니다(디렉터리는 무시합니다).

3. -name '*.jpg'

파일 이름이나 확장자를 기준으로 결과를 필터링합니다.

  • 예: *.jpg는(은) 다음을 찾습니다. 끝이 .jpg.
  • 다른 패턴으로 바꿀 수도 있습니다. 예를 들어 *.txt는(은) 텍스트 파일용, *.log는(은) 로그 파일용입니다.

4. -mtime +30

이것이 파일을 오래된 정도에 따라 필터링하는 핵심입니다.

  • +30: 30일보다 전에 마지막으로 수정된 파일을 찾습니다.
  • 30을(를) 필요에 따라 원하는 숫자로 바꾸세요:
    • 1년: -mtime +365.
    • 1주: -mtime +7.

5. -exec ls -l {} \;

찾은 파일을 어떻게 처리할지 Linux에 알려줍니다.

  • -exec: 각 파일에 대해 명령을 실행합니다.
  • ls -l: 각 파일에 대한 자세한 정보(예: 크기, 권한, 소유자, 마지막 수정 날짜)를 나열합니다.
  • {}: 찾은 각 파일의 자리 표시자.
  • \;: 명령의 끝을 알립니다.

전문가 팁

ls -l을(를) 실행하지 않고 명령을 테스트하려면 -exec 부분을 생략하세요:

find /path/to/files -type f -name '*.jpg' -mtime +30

이렇게 하면 추가 세부 정보 없이 파일 경로만 나열됩니다.


이 명령을 사용하는 이유

find 명령은 매우 다재다능하며 시스템 유지 관리 작업에 유용합니다:

  • 디스크 공간 확보: 오래된 파일을 찾아 삭제합니다.
  • 오래된 데이터 보관: 수개월 또는 수년 동안 건드리지 않은 파일을 백업 스토리지로 이동합니다.
  • 오래된 파일 모니터링: 중요한 디렉터리에서 오래된 파일을 확인합니다.

실제 예제

예제 1: 오래된 문서 찾기

.docx 파일을 Documents 폴더에서 90일이 넘도록 수정되지 않은 파일을 찾습니다:

find ~/Documents -type f -name '*.docx' -mtime +90 -exec ls -l {} \;

예제 2: 6개월이 넘은 큰 파일 찾기

다음 위치에서 100MB보다 큰 파일 찾기: /home/user에 있는, 6개월이 넘도록 수정되지 않은 파일:

find /home/user -type f -size +100M -mtime +180 -exec ls -lh {} \;
  • -size +100M: 100MB보다 큰 파일을 필터링합니다.
  • ls -lh: 파일 크기를 사람이 읽기 쉬운 형식(예: MB, GB)으로 표시합니다.

예제 3: 오래된 PDF 검색

.pdf 파일을 /home/user/Downloads에서 지난 1년 동안 수정되지 않은 파일을 찾습니다:

find ~/Downloads -type f -name '*.pdf' -mtime +365 -exec ls -l {} \;

예제 4: 최근에 수정된 파일 찾기

.txt 파일 중 최근 7일 이내에 수정된 파일을 다음 위치에서 찾습니다:/var/www:

find /var/www -type f -name '*.txt' -mtime -7 -exec ls -l {} \;
  • -mtime -7: 최근 7일 이내에 수정된 파일을 찾습니다.

예제 5: 오래된 임시 파일 삭제

다음 위치에 있는 파일을 삭제합니다: /tmp에서 30일이 넘도록 수정되지 않은 파일:

find /tmp -type f -mtime +30 -exec rm {} \;
  • rm: 파일을 삭제합니다.
  • 경고: 파일을 영구적으로 삭제하므로 주의해서 사용하세요.

예제 6: 오래된 미디어 파일 보관

.mp4 파일 중 60일이 넘은 파일을 ~/Videos에서 보관 폴더로 이동합니다:

find ~/Videos -type f -name '*.mp4' -mtime +60 -exec mv {} ~/Archives/ \;
  • mv: 파일을 지정된 폴더로 이동합니다.

예제 7: 특정 시간 범위 안에 생성된 파일 찾기

.log 파일 중 30일에서 60일 전에 생성된 파일을 다음 위치에서 찾습니다:/var/log:

find /var/log -type f -name '*.log' -mtime +30 -mtime -60 -exec ls -l {} \;
  • -mtime +30: 30일이 넘은 파일.
  • -mtime -60: 최근 60일 이내에 수정된 파일.

예제 8: 1주가 넘은 빈 파일 찾기

다음 위치에서 빈 파일을 찾습니다: /home/user에서 지난주 동안 수정되지 않은 파일:

find /home/user -type f -empty -mtime +7 -exec ls -l {} \;
  • -empty: 크기가 0인 파일을 필터링합니다.

예제 9: 액세스 시간으로 파일 검색

.png 파일을 /var/www/html에서 지난 90일 동안 액세스하지 않은 파일을 찾습니다:

find /var/www/html -type f -name '*.png' -atime +90 -exec ls -l {} \;
  • -atime: 수정 시간이 아니라 액세스 시간으로 파일을 필터링합니다.

예제 10: 최근에 생성된 파일 찾기

다음 위치에서 파일을 찾습니다: /home/user에서 지난 3일 이내에 생성된 파일:

find /home/user -type f -ctime -3 -exec ls -l {} \;
  • -ctime: 생성 시간으로 파일을 필터링합니다.

예제 11: 권한으로 파일 찾기

다음 위치에서 파일을 찾습니다: /etc에서 특정 권한을 가진 파일(예: 다른 사용자가 쓸 수 있는 파일):

find /etc -type f -perm /o+w -exec ls -l {} \;
  • -perm /o+w: 다른 사용자가 쓸 수 있는 파일을 찾습니다.

예제 12: 지난 1시간 이내에 수정된 파일 찾기

다음 위치에서 지난 1시간 이내에 수정된 파일을 찾습니다: /home/user/Documents:

find ~/Documents -type f -mmin -60 -exec ls -l {} \;
  • -mmin -60: 최근 60분 이내에 수정된 파일을 필터링합니다.

예제 13: 특정 소유자의 파일 찾기

다음 사용자가 소유한 파일을 찾습니다: jose, 위치: /var/log에서 90일이 넘도록 수정되지 않은 파일:

find /var/log -type f -user jose -mtime +90 -exec ls -l {} \;
  • -user jose: 지정된 사용자가 소유한 파일을 필터링합니다.

예제 14: 특정 디렉터리 제외

.jpg 파일을 /home/user에서 30일이 넘은 파일을 찾되, 다음 폴더는 제외합니다: Downloads 폴더:

find /home/user -type f -name '*.jpg' -mtime +30 -not -path "~/Downloads/*" -exec ls -l {} \;
  • -not -path: 지정된 디렉터리에 있는 파일을 제외합니다.

예제 15: 특정 날짜에 수정된 파일 찾기

다음 위치에서 정확히 10일 전에 수정된 파일을 찾습니다: /home/user:

find /home/user -type f -mtime 10 -exec ls -l {} \;
  • -mtime 10: 정확히 10일 전에 수정된 파일을 찾습니다.

예제 16: 특정 확장자를 가진 파일 찾기

.zip과 .tar.gz 파일 중 60일이 넘은 파일을 다음 위치에서 찾습니다:/backups:

find /backups -type f \( -name '*.zip' -o -name '*.tar.gz' \) -mtime +60 -exec ls -l {} \;
  • \( -name '*.zip' -o -name '*.tar.gz' \): 여러 파일 확장자를 검색합니다.

결론

Linux의 find 명령은 파일의 오래된 정도, 유형, 이름을 기준으로 파일을 관리하는 강력한 도구입니다. 디스크 공간을 확보하거나, 오래된 데이터를 보관하거나, 오래된 파일을 모니터링할 때, 이 명령을 사용하면 디렉터리를 완전히 제어할 수 있습니다.

오늘 직접 사용해 보고 Linux 실력을 한 단계 높여 보세요!

댓글 남기기