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

압축·아카이브·검색 (tar·gzip·find)

섹션 7진행 0 / 10

6. 연습 문제

문제 1. 로그 제외 묶기

/opt/myapp 을 .log 와 .hprof 파일을 빼고 myapp.tgz 로 묶는 명령을 쓰세요. 풀 때 myapp/ 으로 시작하게 합니다.

bash
tar czf myapp.tgz --exclude='*.log' --exclude='*.hprof' -C /opt myapp

-C /opt myapp 으로 상대 경로가 되고 --exclude 는 여러 번 씁니다.

문제 2. 파일 하나 확인

myapp.tgz 안의 myapp/conf/env 를 풀지 않고 화면에 보는 명령을 쓰세요.

bash
tar xzOf myapp.tgz myapp/conf/env

O 가 표준 출력으로 보냅니다. 반입한 묶음의 설정을 빠르게 볼 때 씁니다.

문제 3. 큰 파일 찾기

루트 파티션 안에서 500MB 넘는 파일을 크기순으로 5개 보는 명령을 쓰세요.

bash
find / -xdev -type f -size +500M -printf '%s %p\n' 2>/dev/null | sort -rn | head -n 5

-printf 로 크기와 경로를 찍고 정렬합니다. -xdev 가 다른 파티션을 막습니다.

문제 4. 내용 검색 후 치환 대상 고르기

/opt/myapp/conf 아래 .properties 파일 중 db-dev 가 든 파일 이름만 출력하는 명령을 쓰세요.

bash
grep -rl --include='*.properties' 'db-dev' /opt/myapp/conf

-l 결과를 xargs sed -i.bak 에 넘기면 운영 묶음 02 의 일괄 치환이 됩니다.

문제 5. 반입 검증

release.tgz 와 release.tgz.sha256 을 받았습니다. 검증 후 /opt/release 에 푸는 명령을 쓰세요. 검증 실패 시 풀지 않아야 합니다.

bash
sha256sum -c release.tgz.sha256 && mkdir -p /opt/release && tar xzf release.tgz -C /opt/release

&& 로 이어 앞이 실패하면 뒤가 실행되지 않습니다.