압축 명령의 올바른 사용법 tar cf xx.tar -C

[root @ linux ~] #  tar [-cxtzjvfpPN] 파일 및 디렉토리 ...
매개 변수 :
-c : 압축 파일을 생성하기위한 매개 변수 명령 (의미 생성);
-x : 압축 파일 을 풀기위한 매개 변수 명령 !
-t : tarfile에서 파일보기!
매개 변수 릴리스에 하나의 c / x / t 만 존재할 수 있다는 사실에 특히주의하십시오! 동시에 존재할 수 없습니다!
압축과 압축 해제를 동시에 할 수 없기 때문입니다.
-z : gzip의 속성도 가지고 있습니까? 즉, gzip 압축을 사용해야합니까?
-j : bzip2 속성도 가지고 있습니까? 즉, bzip2 압축을 사용해야합니까?
-v : 압축 중 파일 표시! 이것은 일반적으로 사용되지만 백그라운드 실행에는 권장되지 않습니다!
-f : 파일 이름을 사용하십시오.주의하십시오. f 다음에 파일 이름을 즉시 수락해야합니다! 더 이상 매개 변수가 없습니다!
   예를 들어, "tar -zcvfP tfile sfile"을 사용하는 것은 잘못된 작성 방법입니다. "tar -zcvPf tfile sfile"을 쓰는 것이 맞습니다
   !
-p : 원본 파일의 원래 속성 사용 (사용자에 따라 속성은 변경되지 않음)
-P : 절대 경로를 사용하여 압축 할 수 있습니다!
-N : 새로운 날짜 (yyyy / mm / dd) 만 새로 생성 된 파일에 패키지됩니다!
--exclude FILE : 압축 프로세스 중에 FILE을 압축하지 마십시오!


예 :
예 1 : 전체 / etc 디렉토리의 모든 파일을 /tmp/etc.tar
[root @ linux ~] #  tar -cvf /tmp/etc.tar / etc  <== 패키지 전용, 압축 안 함!
[root @ linux ~] #  tar -zcvf /tmp/etc.tar.gz / etc  <== 패키징 후 gzip으로 압축
[root @ linux ~] #  tar -jcvf /tmp/etc.tar.bz2 / etc  < == 패키징 후 bzip2로 압축합니다.
# 특별한주의, 매개 변수 f 뒤의 파일 이름은 우리가 .tar를 식별로 사용하는 데 익숙합니다.
# z 매개 변수를 추가하면 .tar.gz 또는 .tgz를 사용하여 gzip 압축 tar 파일을 나타냅니다 ~
# j 매개 변수를 추가 할 경우 .tar.bz2를 파일 이름으로 사용 ~
# 위 명령을 실행하면 , 경고 메시지가 표시됩니다.
# 『tar : 멤버 이름에서 선행`/ '제거』절대 경로에 대한 특수 설정입니다.

예 2 : 위의 /tmp/etc.tar.gz 파일에 어떤 파일이 있는지 확인합니까?
[root @ linux ~] #  tar -ztvf /tmp/etc.tar.gz
# gzip 압축을 사용하므로 tar 파일의 파일을 보려면
# z 매개 변수를 추가해야합니다! 이건 매우 중요합니다!

예 3 : / usr / local / src
[root @ linux ~] #  cd / usr / local / src
[root @ linux src] #  tar -zxvf / tmp / 에서 /tmp/etc.tar.gz 파일의 압축을 풉니 다. etc.tar.gz
# 기본적으로 압축 파일을 어디서나 풀 수 있습니다! 이 예에서는
# 먼저 작업 디렉토리를 / usr / local / src로 변경하고 /tmp/etc.tar.gz
의 압축을 푼 다음 # 압축을 푼 디렉토리는 / usr / local / src / etc에 있습니다. 너무! 또한 / usr / local / src / etc
#를 입력하면이 디렉토리의 파일 속성이 / etc /!

예제 4 : / tmp 아래에서 /tmp/etc.tar.gz
[root @ linux ~] #  cd / tmp
[root @ linux tmp] #  tar -zxvf / 에서 etc / passwd의 압축을 풀고 싶습니다. tmp / etc.tar.gz etc / passwd
# tar -ztvf를 통해 타르 파일에있는 파일명을 확인할 수 있습니다. 파일이 하나만 있으면
# 이렇게 발행 할 수 있습니다! 주의! etc.tar.gz의 루트 디렉토리 /가 제거되었습니다!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N '2005/06/01' -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

补充:tar.xz 类型

先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar -xf xxx.tar来解包。

추천

출처blog.csdn.net/digitalkee/article/details/108443729