일상 생활에서는 모든 종류의 플랫폼에서 아카이브된 파일을 만날 수 있습니다. Windows, Mac, 또는 Linux일 수 있습니다. 모든 플랫폼에는 아카이브 파일을 만들거나 압축 해제할 수 있는 여러 응용 프로그램이 있습니다. Linux 플랫폼에서 작업할 때 아카이브된 파일을 매우 자주 처리해야 합니다.

본 문서에서는 표준 Linux 배포판에서 제공되는 아카이브 도구, 그들의 기능, 예제 등에 대해 논의하겠습니다. 이 문서는 두 부분으로 나뉘며 각 부분에는 다섯 가지의 명령줄 아카이브 도구가 포함되어 있습니다(즉, 총 10개의 최고 명령줄 아카이브 도구가 있습니다).
아카이브된 파일이란 무엇입니까?
아카이브 파일은 하나 이상의 컴퓨터 파일과 메타데이터로 구성된 압축 파일입니다.
아카이빙의 특징
- 데이터 압축
- 암호화
- 파일 연결
- 자동 추출
- 자동 설치
- 소스 볼륨 및 미디어 정보
- 파일 분할
- 체크섬
- 디렉터리 구조 정보
- 다른 메타데이터(데이터에 대한 데이터)
- 오류 검색
응용 분야
- 메타데이터와 함께 컴퓨터 파일 시스템 저장
- 로컬로 파일 전송에 유용함
- 웹을 통한 파일 전송에 유용함
- 소프트웨어 패키징 응용 프로그램
표준 Linux 배포판에서 유용한 아카이빙 응용 프로그램은 다음과 같습니다:
1. tar 명령어
tar는 표준 UNIX/Linux 아카이빙 애플리케이션 도구입니다. 초기에는 테이프 아카이빙 프로그램으로 시작해 점차 다양한 종류의 아카이브 파일을 처리할 수 있는 일반 목적 아카이빙 패키지로 발전했습니다. tar는 많은 아카이빙 필터 옵션을 받아들입니다.
tar 옵션
- -A : 기존 아카이브에 tar 파일 추가.
- -c : 새 아카이브 파일 생성.
- -d : 아카이브와 지정된 文献系统 비교.
- -j : 아카이브 버지니아.
- -r : 기존 아카이브에 파일 추가.
- -t : 기존 아카이브의 내용 나열.
- -u : 아카이브 업데이트.
- -x : 기존 아카이브에서 파일 추출.
- -z : 아카이브 지원.
- –delete : 기존 아카이브에서 파일 삭제.
tar 예제
tar 아카이브 파일 생성.
# tar -zcvf name_of_tar.tar.gz /path/to/folder
tar 아카이브 파일 압축 해제.
# tar -zxvf Name_of_tar_file.tar.gz
자세한 예제는 18 Tar Command Examples in Linux를 읽어보세요.
shar 명령어
shar는 파일을 생성하는 셸 스크립트로, Shell 아카이브를 나타냅니다. shar은 자가 압축 아카이브 파일로, 레거시 유틸리티이며 파일을 추출하려면 Unix Bourne Shell이 필요합니다. shar은 일반 텍스트로 이점을 가지고 있지만 실행 가능한 파일을 출력하기 때문에 잠재적으로 위험할 수 있습니다.
shar 옵션
- -o : 지정된 대로 아카이브 파일에 출력을 저장합니다.
- -l : 지정된 대로 출력 크기를 제한하지만 분할하지 않습니다.
- -L : 지정된 대로 출력 크기를 제한하고 분할합니다.
- -n : shar 파일의 헤더에 포함될 아카이브의 이름입니다.
- -a : 헤더를 자동으로 생성할 수 있도록 허용합니다.
참고: ‘-o‘ 옵션은 ‘-l‘ 또는 ‘-L‘ 옵션이 사용된 경우 필요하며 ‘-n‘ 옵션은 ‘-a‘ 옵션이 사용된 경우 필요합니다.
shar 예시
shar 아카이브 파일을 생성합니다.
# shar file_name.extension > filename.shar
shar 아카이브 파일을 추출합니다.
# unshar file_name.shar
3. ar 명령어
ar는 주로 이진 객체 파일 라이브러리를 위해 사용되는 아카이브 생성 및 조작 유틸리티입니다. ar은 아카이버를 나타내며 어떤 목적을 위해 어떤 종류의 아카이브도 생성할 수 있지만 ‘tar’에 크게 대체되었으며 현재는 정적 라이브러리 파일을 생성하고 업데이트하는 데만 사용됩니다.
ar 옵션
- -d : 아카이브에서 모듈 삭제.
- -m : 아카이브에서 멤버 이동.
- -p : 아카이브의 특정 멤버 인쇄.
- -q : 빠른 추가.
- -r : 파일 멤버를 아카이브에 삽입.
- -s : 아카이브에 인덱스 추가.
- -a : 기존 아카이브 멤버에 새 파일 추가.
ar 예제
‘ar‘ 도구를 사용하여 정적 라이브러리 ‘libmath.a’와 목적 파일 ‘substraction’ 및 ‘division’을 사용하여 아카이브를 만듭니다.
# ar cr libmath.a substraction.o division.o
‘ar’ 아카이브 파일을 추출하려면.
# ar x libmath.a
4. cpio
cpio은 Copy in and out을 나타냅니다. cpio는 리눅스용 일반 파일 아카이버입니다. 리눅스 커널의 initramfs에서 활발히 사용되며 리눅스의 주요 아카이빙 도구인 RedHat Package Manager (RPM) 및 Apple Computer의 Installer (pax)에서도 중요한 아카이빙 도구로 사용됩니다.
cpio 옵션
- -0 : 새 줄이 아닌 널 문자로 끝나는 파일 이름 목록을 읽습니다.
- -a : 액세스 시간 재설정.
- -A : 추가.
- -b : 교환.
- -d : 디렉터리 생성.
cpio 예제
‘cpio’ 아카이브 파일을 만드는 방법
# cd tecmint # ls file1.o file2.o file3.o # ls | cpio -ov > /path/to/output_folder/obj.cpio
cpio 아카이브 파일을 추출하는 방법
# cpio -idv < /path/to folder/obj.cpio
5. Gzip
gzip은 표준적이고 널리 사용되는 파일 압축 및 해제 유틸리티입니다. Gzip은 파일 연결을 허용합니다. Gzip으로 파일을 압축하면 ‘*.tar.gz‘ 또는 ‘*.tgz‘ 형식의 tarball이 출력됩니다.
gzip 옵션
- –stdout : 표준 출력에 출력합니다.
- –to-stdout : 표준 출력에 출력합니다.
- –decompress : 파일을 압축 해제합니다.
- –uncompress : 파일을 압축 해제합니다.
- -d : 파일을 압축 해제합니다.
- -f : 강제로 압축 또는 압축 해제합니다.
gzip 예시
‘gzip’ 아카이브 파일을 만듭니다.
# tar -cvzf name_of_archive.tar.gz /path/to/folder
‘gzip’ 아카이브 파일을 추출합니다.
# gunzip file_name.tar.gz
위 명령은 아래 명령어를 따라야 합니다.
# tar -xvf file_name.tar
참고: ‘gzip’의 아키텍처와 기능은 손상된 ‘gzipped tar 아카이브’ 파일을 복구하기 어렵게 만듭니다. 중요한 gzipped 파일의 여러 백업을 다른 위치에 만드는 것이 좋습니다.
지금까지입니다. 다음 기사에서는 Linux용으로 제공되는 다른 압축 및 해제 애플리케이션에 대해 논의할 예정입니다. 그때까지 Tecmint에 연결되어 계세요. 아래 댓글 섹션에서 소중한 피드백을 제공하지 않도록 잊지 마세요.
Source:
https://www.tecmint.com/command-line-archive-tools-for-linux/