명령어 tar 를 사용해 압축을합니다.
1개의 파일을 압축할때는 그냥 압축하면되지만
1개의 파일을 압출할때 옵션 -zf
tar -zf 압축후생성할파일이름 file1
1개이상의 파일과 디렉토리를 압축할때는 먼저 하나의 파일로 묶어줘야합니다.
하나로 묶는걸 영어로 archive라고합니다.
여러파일및 디렉토리를 하나로묶을때 옵션 -cf
tar -cf 하나로묶은후생성할파일이름 file1 file2 file3...........................
여러파일및 디렉토리를 하나로묶고 압추까지 할때 옵션 -czf
tar -czf 하나로묶은후압추까지한후생성할파일이름 fiel1 file2 file3 directory1 directory2 file4..........................
하나로 묶거나 압축한파일을 풀어줄때 옵션 -xzf
tar -xzf tar or tar.gz 파일이름
shdkshdk@b612:~ $ ls -al
합계 28
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:16 .
drwxr-xr-x 5 root root 4096 9월 1 19:54 ..
-rw------- 1 shdkshdk shdkshdk 1236 9월 8 22:32 .bash_history
-rw-r--r-- 1 shdkshdk shdkshdk 220 9월 1 19:54 .bash_logout
-rw-r--r-- 1 shdkshdk shdkshdk 3512 9월 1 19:54 .bashrc
-rw-r--r-- 1 shdkshdk shdkshdk 675 9월 1 19:54 .profile
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 8 00:25 xxx
shdkshdk@b612:~ $ cd xxx
shdkshdk@b612:~/xxx $ ls -al
합계 8
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:26 .
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:16 ..
shdkshdk@b612:~/xxx $ touch a b c d e f g h i //빈파일 a부터 i까지 9개를 만들었습니다.
shdkshdk@b612:~/xxx $ ls -al
합계 8
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:27 .
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:16 ..
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 a
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 b
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 c
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 d
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 e
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 f
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 g
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 h
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 i
shdkshdk@b612:~/xxx $ mkdir 1111 //디렉토리 1111을 만들었습니다.
shdkshdk@b612:~/xxx $ ls -al
합계 12
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:29 .
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:16 ..
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:29 1111
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 a
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 b
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 c
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 d
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 e
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 f
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 g
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 h
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 i
shdkshdk@b612:~/xxx $ tar -cf files.tar a b c d e f g h i 1111 // 파일들과 디렉토리를 files.tar이란 파일하나로 묶었습니다.
shdkshdk@b612:~/xxx $ ls -al
합계 24
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:31 .
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:16 ..
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:29 1111
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 a
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 b
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 c
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 d
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 e
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 f
-rw-r--r-- 1 shdkshdk shdkshdk 10240 9월 10 21:31 files.tar
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 g
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 h
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 i
shdkshdk@b612:~/xxx $ cp files.tar /1111 // files.tar 을 빈디렉토리인 1111에 복사
cp: cannot create regular file `/1111': 허가 거부 // . 은 현재디렉토리를 뜻함 현재디렉토리의 1111디렉토리로
shdkshdk@b612:~/xxx $ cp files.tar ./1111 // 파일을 복사하려면 ./1111 해줘야함 /1111은 루트디렉토리에
shdkshdk@b612:~/xxx $ cd 1111 //있는 1111 디렉토리를 뜻함
shdkshdk@b612:~/xxx/1111 $ ls -al
합계 20
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:32 .
drwxr-xr-x 4 shdkshdk shdkshdk 4096 9월 10 21:31 ..
-rw-r--r-- 1 shdkshdk shdkshdk 10240 9월 10 21:32 files.tar
shdkshdk@b612:~/xxx/1111 $ tar -xf files.tar //파일 묶은걸 풀어줌
shdkshdk@b612:~/xxx/1111 $ ls -al
합계 24
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:33 .
drwxr-xr-x 4 shdkshdk shdkshdk 4096 9월 10 21:31 ..
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:29 1111
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 a
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 b
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 c
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 d
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 e
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 f
-rw-r--r-- 1 shdkshdk shdkshdk 10240 9월 10 21:32 files.tar
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 g
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 h
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 i
shdkshdk@b612:~/xxx/1111 $ cd ..
shdkshdk@b612:~/xxx $ ls -al
합계 32
drwxr-xr-x 4 shdkshdk shdkshdk 4096 9월 10 21:36 .
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:16 ..
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:33 1111
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 a
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 b
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 c
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 d
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 e
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 f
-rw-r--r-- 1 shdkshdk shdkshdk 10240 9월 10 21:31 files.tar
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 g
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 h
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 i
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:31 zzz
shdkshdk@b612:~/xxx $ tar -czf files.tar.gz a b c d e f g h i 1111 // 옵션 -czf 를 사용해서 아카이브후 압축까지한번에 함
shdkshdk@b612:~/xxx $ ls -al
합계 32
drwxr-xr-x 4 shdkshdk shdkshdk 4096 9월 10 21:36 .
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:16 ..
drwxr-xr-x 3 shdkshdk shdkshdk 4096 9월 10 21:33 1111
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 a
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 b
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 c
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 d
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 e
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 f
-rw-r--r-- 1 shdkshdk shdkshdk 10240 9월 10 21:31 files.tar //아카이브만한것
-rw-r--r-- 1 shdkshdk shdkshdk 428 9월 10 21:36 files.tar.gz //압축까지해서 위의 파일과 크기가 다름
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 g
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 h
-rw-r--r-- 1 shdkshdk shdkshdk 0 9월 10 21:27 i
drwxr-xr-x 2 shdkshdk shdkshdk 4096 9월 10 21:31 zzz
또다른 압축명령어 gzip (compress) ; 여러파일과 디렉토리를 하나로묶는 기능이 없다.
gzip 압축할파일이름(.gz)
gzip -d 압축파일이름((.gz)
-d (decompress)
명령어
tar : tape archive
gzip : Gun zip
자세한내용은 man tar, man gzip
or https://ko.wikipedia.org/wiki/Tar_(%ED%8C%8C%EC%9D%BC_%ED%8F%AC%EB%A7%B7) 에서 검색하세요.
https://ko.wikipedia.org/wiki/Gzip