자격증/리눅스마스터

리눅스마스터 1급 2차 - 2102회 기출문제 풀이 (4/16)

로이제로 2023. 11. 15. 22:00
반응형

4. 다음은 추가로 생성한 C 언어 소스 프로그램의 오브젝트 파일을 생성하고, 백업을 진행하는 과정이다. 조건에 맞게 ( 괄호 ) 안에 알맞은 내용을 적으시오.

가. 새롭게 작성한 C 언어 소스를 컴파일 하여 오브젝트 파일을 생성한다.
# ①                                   sum.c
#                                     avg.c

나. 생성된 두 개의 오브젝트 파일을 이용하여 calc라는 실행 파일을 생성한다.
#                                     sum.o avg.o

다. tar 명령을 이용하여 현재 디렉터리에 있는 오브젝트 파일만을 묶어서 obj.tar 파일을 생성한다.
# tar ④                  

 

◼︎ 조건

- ①번과 관련 명령어만 기입한다.

- ②번과 ③번은 명령어의 옵션 또는 옵션과 관련된 인자 값을 기입한다. (예: -d /home/ihduser)

- ④번은 명령어의 옵션 또는 옵션과 관련된 인자값, 대상(target) 등을 기입하는데, 명령어를 제외한 나머지 부분을 하나의 괄호로 처리한다. (예: -d /home/ihduser -g kait)

- ②번과 ③번의 경우 명령어가 틀리면 채점하지 않는다.

 

더보기
정답및해설보기

 

번호 정답
gcc
-c
-o calc
cf obj.tar *.o

 

  gcc 명령어

 gcc는 GNU Compiler Collection의 약자로, 리눅스와 유닉스 기반 시스템에서 C, C++, Objective-C 등의 프로그래밍 언어로 작성된 소스 코드를 컴파일하는 데 사용되는 컴파일러입니다. gcc는 여러 가지 컴파일 및 링크 옵션을 제공하여 소스 코드를 컴파일하고 실행 파일로 변환할 수 있습니다.

gcc --help 결과
주요 옵션 내용
-c 소스 코드를 컴파일하여 객체 파일(.o)을 생성합니다.
-o 컴파일된 실행 파일의 이름을 지정합니다.
-Wall 경고 메시지를 출력합니다.
-g 디버깅 정보를 포함하여 컴파일합니다.
-0 최적화 옵션을 지정합니다. -01, -02, -03 등 세부적인 최적화 옵션을 선택할 수 있습니다.

 

  tar 명령어

 리눅스 시스템에서 여려 개의 파일을 하나로 묶을 때 tar 명령어를 사용합니다. tar는 Tape ARchiver의 앞 글자를 따서 "tar"라 불립니다. 흔히 tar 명령어를 ㅇ바축을 위한 명령어라고 생각하는 경우가 많은데, 이는 압축"도" 가능한 명령어라고 보는 게 더 맞습니다.

 tar가 압축하는 방식으로는 보통 -z(--gzip) 방식이나 -j(--bzip2)을 사용하며, 확장자도 압축 방식에 따라 아래와 같이 나누어 표기해 줍니다. (이는 필수는 아니며 권장 사항이라고 보는 게 맞습니다.)

압축방식 확장자
공통 .tar
gzip *.tar.gz
*.tgz
bzip2 *.tar.bz2
*.tbz2
tar --help 결과
주요 옵션 내용
-c --create 신규 아카이브 생성
-d --diff, --comapre 아카이브와 파일 시스템간 차이점 검색
-r --append 아카이브의 마지막에 이어서 파일들을 추가
-t --list 아카이브 내 포함된 내용 출력
-u --update 아카이브 내 변경된 파일들만 추가
-x --extract, --get 아카이브로 부터 파일들을 추출
-f --file=ARCHIVE 사용할 아카이브 파일이나 디바이스 아카이브를 지정
-j --bzip2 아카이브를 bzip2로 압축
-J --xz 아카이브를 xz로 압축
-z --gzip, --gunzip, --ungzip 아카이브를 gzip으로 압축
-C --directory=DIR 대상 디렉터리 경로 지정
-v --verbose 아카이브 생성 또는 추출되는 과정을 자세히 나열
-w --interactive, --confirmation 모든 진행 과정을 대화형으로 진행

 

사용 예시

▶︎ foo와 bar를 archive.tar로 묶어줍니다.

# foo와 bar 파일 생성
$> touch foo
$> touch bar

# foo와 bar를 묶은 archive.tar 아카이브 생성
$> tar -cvf archive.tar foo bar

# 결과 확인
$> ls -alt | grep archive.tar
foo와 bar를 archive.tar 묶은 결과

 

▶︎ archive.tar에 묶여있는 파일 목록을 봅니다.

# archive.tar 아카이브에 들어있는 파일 목록 확인
$> tar -tvf archive.tar
archive.tar 아카이브에 들어있는 파일 목록 표시

 

▶︎ archive.tar에 묶여있는 파일들을 추출해 봅니다.

# archive.tar에 묶여있는 파일들을 추출해 봅니다.
$> tar -xvf archive.tar

# 해제된 foo와 bar 파일 확인
$> ls -alt | grep -e foo -e bar
archive.tar 아카이브에 들어있는 foo, bar파일 추출

 

반응형