서버 & 리눅스 실무팁

리눅스 쉘 스크립트 실전 예제 Part 1: 파일 탐색과 정렬

smartbay 2025. 6. 14. 15:26

리눅스 쉘 스크립트 실전 예제 Part 1: 파일 탐색과 정렬

실무와 개발 현장에서 자주 쓰이는 리눅스 파일 관리 명령어, 쉘 스크립트로 쉽게 정리해보세요.


1. 최근 수정된 파일 10개 출력

용도: 프로젝트 디렉토리 내에서 최근에 수정된 파일을 빠르게 확인할 수 있는 스크립트입니다. 로그 확인, 배포 전 변경 파일 추적 등에 유용하게 활용됩니다.

find . -type f -printf '%T@ %p\n' | sort -n | tail -n 10 | cut -d' ' -f2-

설명:
- find . -type f: 현재 디렉토리 이하의 모든 일반 파일을 탐색합니다.
- -printf '%T@ %p\n': 파일의 수정 시간(timestamp)과 경로를 출력합니다.
- sort -n: 수정 시간 기준 오름차순 정렬을 수행합니다.
- tail -n 10: 가장 최근에 수정된 10개 파일만 추출합니다.
- cut -d' ' -f2-: 파일 경로만 출력하여 가독성을 높입니다.


2. 특정 확장자 파일을 최신 순으로 정렬

용도: .log, .sh, .txt 등 원하는 확장자 파일을 수정일 순으로 정렬하여 확인할 수 있습니다. 예를 들어 최근 생성된 로그 파일을 확인할 때 유용합니다.

ls -lt --time-style=long-iso *.log

설명:
- ls -lt: 수정 시간 기준 내림차순 정렬합니다.
- --time-style=long-iso: 날짜를 연-월-일 시:분 형식으로 표시합니다.
- *.log: 현재 디렉토리의 .log 파일만 대상으로 정렬합니다.


3. 디렉토리별 용량 내림차순 정렬

용도: 어떤 디렉토리가 가장 많은 디스크 용량을 차지하고 있는지 빠르게 파악할 수 있어 디스크 공간 정리에 효과적입니다.

du -sh * | sort -hr

설명:
- du -sh *: 현재 위치의 디렉토리 및 파일 용량을 요약 출력합니다.
- sort -hr: 크기 기준 내림차순 정렬을 수행합니다. (-h: 단위 인식, -r: 역순)


4. 하위 디렉토리 포함 전체 파일 개수 세기

용도: 프로젝트 전체 또는 시스템 디렉토리에 포함된 파일 수를 파악할 때 사용합니다. 정리 기준이나 백업 계획을 세울 때 유용합니다.

find . -type f | wc -l

설명:
- find . -type f: 모든 일반 파일을 재귀적으로 탐색합니다.
- wc -l: 총 파일 개수를 출력합니다.
참고로 특정 확장자 파일 수를 세고 싶다면 find . -name "*.sh" | wc -l 처럼 사용할 수 있습니다.


5. 파일 크기 기준 상위 10개 출력

용도: 디스크 공간을 가장 많이 차지하는 대용량 파일을 우선 확인하여 정리하거나 백업 대상으로 삼을 때 활용합니다.

find . -type f -exec ls -lh {} + | sort -k 5 -hr | head -n 10

설명:
- ls -lh: 파일의 용량을 사람이 읽기 쉬운 단위로 출력합니다.
- sort -k 5 -hr: ls 출력의 다섯 번째 열(파일 크기)을 기준으로 내림차순 정렬합니다.
- head -n 10: 상위 10개 파일만 표시합니다.


마무리

각 스크립트는 텍스트 편집기로 작성한 후 .sh 파일로 저장하고 다음 명령어로 실행 권한을 부여하여 사용할 수 있습니다.

chmod +x script.sh

스크립트를 실행하기 전에 echo 또는 -print 옵션으로 결과를 미리 확인해보는 것을 권장합니다. 루트 디렉토리나 시스템 디렉토리에 적용할 때는 특히 주의가 필요합니다.


실무에 바로 적용할 수 있는 리눅스 쉘 스크립트 예제, 스마트베이에서 함께합니다.


스마트베이 | IT 자동화 혁신 파트너
비즈니스 효율을 높이는 스마트한 IT 솔루션을 제공합니다.

웹사이트 : www.esmartbay.co.kr
E-mail : smartbay.svc@gmail.com
카카오톡 : 바로 상담하기