문제
다음 중 현재 디렉터리에 있는 C 언어 파일만을 source.tar로 묶는 명령으로 알맞은 것은?
① tar rvf *.c source.tar ② tar rvf source.tar *.c ③ tar cvf *.c source.tar ④ tar cvf source.tar *.c
정답
4번
해설
정답: 4. tar 로 새로 묶을 때는 c(create)·v(verbose)·f(file) 옵션을 쓰고, f 다음에 "결과 파일명(source.tar)" 을, 그 뒤에 "묶을 대상(*.c)" 을 둔다. 따라서 "tar cvf source.tar *.c" 가 맞다.
오답 풀이
- 1번: r 은 기존 아카이브에 "추가" 하는 옵션이고, f 뒤에 대상(*.c)이 먼저 와 파일명 위치가 잘못됐다.
- 2번: "tar rvf source.tar *.c" 는 옵션 r(추가)이라 새로 묶는 목적과 맞지 않는다(새로 만들 때는 c).
- 3번: c 옵션은 맞지만 f 뒤에 결과 파일이 아니라 대상(*.c)이 와서 인자 순서가 틀리다.
- 4번: c(생성)·v·f 에 이어 결과 파일 source.tar, 대상 *.c 순서가 모두 맞아 옳다.
보충 개념 tar 핵심 옵션: c(생성), x(해제), r(추가), t(목록), v(과정 표시), f(파일명 지정). f 바로 뒤에 아카이브 파일명을 적고 그다음에 대상 파일을 나열한다.