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는 여러 가지 컴파일 및 링크 옵션을 제공하여 소스 코드를 컴파일하고 실행 파일로 변환할 수 있습니다.
주요 옵션 | 내용 |
-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 |
주요 옵션 | 내용 | |
-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
▶︎ archive.tar에 묶여있는 파일 목록을 봅니다.
# archive.tar 아카이브에 들어있는 파일 목록 확인
$> tar -tvf archive.tar
▶︎ archive.tar에 묶여있는 파일들을 추출해 봅니다.
# archive.tar에 묶여있는 파일들을 추출해 봅니다.
$> tar -xvf archive.tar
# 해제된 foo와 bar 파일 확인
$> ls -alt | grep -e foo -e bar
'자격증 > 리눅스마스터' 카테고리의 다른 글
리눅스마스터 1급 2차 - 2102회 기출문제 풀이 (6/16) (0) | 2023.11.16 |
---|---|
리눅스마스터 1급 2차 - 2102회 기출문제 풀이 (5/16) (0) | 2023.11.15 |
리눅스마스터 1급 2차 - 2102회 기출문제 풀이 (2/16) (2) | 2023.11.14 |
리눅스마스터 1급 2차 - 2102회 기출문제 풀이 (3/16) (0) | 2023.11.14 |
리눅스마스터 1급 2차 - 2102회 기출문제 풀이 (1/16) (2) | 2023.11.13 |