반달가면 이글루에서 백업 - http://bahndal.egloos.com/504508
이제는 리눅스도 GUI가 꽤 잘 되어 있어서 파일 관리자에서 마우스로 클릭 몇번 하면 압축 파일을 만들거나 풀 수 있지만, shell script에서 압축 파일을 만져야 하는 경우가 있는 관계로 여기에 정리해 두기로.
우선 압축 파일 만들기 부터 해 보자. -c 옵션과 -f 옵션을 이용한다. myfile.txt와 myfile.dat 파일을 압축해서 my_file.tar 압축 파일을 만드는 예이다. 터미널창에서 아래와 같이 입력
# 파일 압축하기
tar -cf my_file.tar myfile.txt myfile.dat
-c: 압축 파일 만들기
-f: 파일(tar는 원래 테이프 백업용으로 만들어진 S/W다. 파일을 다룰 때는 -f 옵션이 필요)
옵션을 조합할 때 -cf임에 유의. -fc라고 하면 오류가 발생한다. 뒤에 인자로 들어간 my_file.tar가 -f 옵션과 연결되어야 하기 때문이다.
용량 절약을 위해 gzip 압축이나 bzip 압축을 추가하고 싶다면 아래와 같이 -z 또는 -j 옵션을 사용
tar -czf my_file.tar.gz myfile.txt myfile.dat
tar -cjf my_file.tar.bz2 myfile.txt myfile.dat
-z: gzip 사용(tar.gz 파일)
-j: bzip 사용(tar.bz2 파일)
특정 디렉토리에 있는 파일을 압축하려면 아래의 예시를 참고하자.
# ~/my_dir 디렉토리에 있는 txt 파일 압축
tar -czf myfile.tar.gz ~/my_dir/*.txt
# ~/my_dir 디렉토리로 간 후, txt 파일을 압축
tar -czf myfile.tar.gz -C ~/my_dir *.txt
-C [디렉토리]: 디렉토리 변경(압축 경로 지정)
위의 두가지 명령의 차이는 무엇일까? -C 옵션을 이용하면 해당 디렉토리로 먼저 간 후에 압축을 시작하므로 압축파일에 디렉토리 정보가 포함되지 않는다.
디렉토리 전체를 압축하는 것도 요령은 같다. 먄약 ./my_dir 디렉토리를 통째로 압축하려면 아래와 같이 입력.
# 디렉토리 압축하기
tar -czf my_dir.tar.gz ./my_dir
압축파일에 어떤 파일이 포함되어 있는지 보려면 -t 옵션을 사용한다.
# 압축 파일 내용 확인
tar -tzf my_dir.tar.gz
-t: 압축 파일 내용 표시
파일명 이외에 용량 등 좀 더 자세한 정보를 보고 싶다면 -v 옵션을 추가(verbose).
tar -tvzf my_dir.tar.gz
압축 파일을 풀 때는 -x 옵션을 이용하면 되겠다.
# 압축 풀기
tar -xzf my_dir.tar.gz
-x: 압축 풀기
특정한 디렉토리에 압축을 풀도록 경로를 지정하고 싶다면 -C 옵션을 사용한다. 만약 ~/my_dir_tmp 디렉토리에 풀고 싶다면 아래와 같이 하면 된다.
# 압축 풀기, 경로 지정
tar -xzf my_dir.tar.gz -C ~/my_dir_tmp
'리눅스' 카테고리의 다른 글
ifstat - 리눅스에서 간단한 네트워크 상황 표시 (0) | 2023.04.18 |
---|---|
리눅스에서 윈도우 공유 폴더 연결하기 (0) | 2023.04.11 |
리눅스용 VLC 미디어 플레이어에서 한글 자막 보기 (0) | 2023.04.11 |
리눅스의 가변 램디스크 /dev/shm (0) | 2021.01.06 |
리눅스에서 디스크 빈 공간 확인 (0) | 2021.01.06 |