홈 › 리눅스 명령어 › 01 / 10

파일·디렉터리 명령

섹션 7진행 0 / 10

4. 응용 변형 예제

4.1 tree 가 없을 때

bash
find . -not -path '*/.*' | sed 's|[^/]*/|  |g'

tree 는 기본 설치가 아닌 서버가 많습니다. find 출력의 폴더 구분을 들여쓰기로 바꾸면 비슷하게 보입니다. 숨김 파일은 -not -path 로 뺐습니다.

4.2 오늘 바뀐 파일

bash
find /opt/myapp -type f -mtime -1 -ls
find /opt/myapp -type f -newer /opt/myapp/conf/env

배포 후 무엇이 바뀌었는지 볼 때 씁니다. -ls 는 ls -l 형식으로 출력합니다.

4.3 안전한 삭제 습관

bash
find /tmp/work -name '*.tmp' -print          # 1. 목록 확인
find /tmp/work -name '*.tmp' -delete         # 2. 같은 조건으로 삭제

같은 명령에서 -print 를 -delete 로만 바꾸면 확인한 것과 지우는 것이 정확히 같습니다. 운영 묶음 06 의 로그 정리가 이 방식입니다.

4.4 백업 복사

bash
cp -rp /opt/myapp/conf "/opt/myapp/conf.bak.$(date +%Y%m%d)"

-p 로 시각을 남기고 이름에 날짜를 붙입니다. 설정을 고치기 전 한 줄로 되돌릴 준비를 하는 습관입니다.

4.5 이름 일괄 변경

bash
for f in *.txt; do mv "$f" "${f%.txt}.md"; done

리눅스에는 rename 이 배포판마다 달라 for 와 변수 확장이 가장 확실합니다. ${f%.txt} 는 뒤의 .txt 를 뗀 이름입니다.