소개
오랫동안 건드리지 않은 파일을 디렉터리에서 찾는 방법이 궁금한 적이 있나요? 오래된 파일을 정리하거나, 데이터를 보관하거나, 오래된 파일을 확인할 때, 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.
- 1년:
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 실력을 한 단계 높여 보세요!