LabHub

LFCS — 리눅스 재단 시스템 관리자 · 필수 명령과 텍스트 처리 · 실습

파일 다루기와 find 표현식

LabHub 에서 이어서 보기

목표

셸이 언제 무엇을 확장하는지, find 가 왜 표현식 언어인지를 손으로 확인한다. 링크·아카이브·패치까지 LFCS 필수 명령 영역을 한 바퀴 돈다.

왜 중요한가

이 영역은 시험 시간의 대부분을 잡아먹는 구간이다. 문제 자체는 어렵지 않은데, -perm 644-perm -644 처럼 한 글자 차이로 결과가 달라지는 문법이 많아서 조용히 틀린다. 링크와 inode 를 이해하면 "지웠는데 용량이 안 줄어든다" 같은 운영 사고가 당연한 결과로 보이기 시작한다. 압축 형식 선택도 취향이 아니라 트레이드오프다 — xz 는 더 작게 만들지만 CPU 와 시간을 훨씬 많이 쓴다. 그래서 백업 주기와 복원 시간 요구가 형식을 결정한다.

단계

1. /root/lfcs-ess/ 아래에 src, archive, report, patch 네 디렉터리를 만드세요.
2. /root/lfcs-ess/src/data-01.txt 부터 data-06.txt 까지 여섯 파일을 만드세요. data-01 ~ data-03 은 각각 200000 바이트 이상, data-04 ~ data-06 은 각각 1 바이트 이상 1000 바이트 미만이어야 합니다.
3. data-01.txt 의 하드 링크 src/data-01.hard 와 심볼릭 링크 src/data-01.sym 을 만드세요. 그리고 report/inode.txtinode=<data-01.txt 의 inode 번호>links=<링크 수> 두 줄을 적으세요.
4. src/ 바로 아래에서 이름이 .txt 로 끝나면서 크기가 100k 를 넘는 일반 파일의 이름만 report/big.txt 에 한 줄씩 적으세요.
5. data-05.txtdata-06.txt 의 권한을 600 으로 바꾸고, src/ 바로 아래에서 권한이 정확히 600 인 일반 파일의 이름을 report/perm600.txt 에 적으세요.
6. data-06.txt 의 수정 시각을 30일보다 더 오래전으로 바꾸고, src/ 바로 아래에서 -mtime +30 에 걸리는 파일의 이름을 report/old.txt 에 적으세요.
7. src/ 디렉터리를 archive/src.tar.gzarchive/src.tar.xz 두 아카이브로 만들고, report/compress.txtgzip=<바이트 크기>, xz=<바이트 크기>, smaller=<gzip 또는 xz> 세 줄을 적으세요.
8. patch/conf-old.txtlisten=8080, workers=2, loglevel=info, timeout=30 네 줄을, patch/conf-new.txtlisten=9090, workers=4, loglevel=info, timeout=30 네 줄을 만드세요. 두 파일의 차이를 통합 형식으로 patch/conf.patch 에 저장한 다음, conf-old.txt사본patch/conf-target.txt 에 그 패치를 적용해 conf-new.txt 와 같아지게 하세요.

참고

단계 8개

  1. 작업 디렉터리 네 개 만들기
  2. 크기가 다른 파일 여섯 개 준비
  3. 하드 링크·심볼릭 링크와 inode
  4. 크기 조건으로 찾기
  5. 권한 조건으로 찾기
  6. 수정 시각 조건으로 찾기
  7. gzip 과 xz 압축률 비교
  8. 패치 만들고 사본에 적용하기