tar整理

tar整理

1. 压缩文档中的绝对路径

man tar:

-P, --absolute-names

    don’t strip leading ‘/’s from file names

测试:

 

# 压缩时默认不处理'/', 以相对路径处理

#tar -cvf data1.tar /tmp/data1/

tar: Removing leading `/' from member names

/tmp/data1/

tar: /tmp/data1/data1.tar: file is the archive; not dumped

/tmp/data1/b.txt

/tmp/data1/a.txt



# 查看, 压缩的信息中路径为相对路径

#tar -tvf data1.tar 

drwxr-xr-x root/root         0 2014-11-22 11:12 tmp/data1/

-rw-r--r-- root/root         0 2014-11-22 11:12 tmp/data1/b.txt

-rw-r--r-- root/root         0 2014-11-22 11:12 tmp/data1/a.txt



# 压缩时指明不忽略'/', 以绝对路径处理

#tar -P -cvf data1.tar /tmp/data1/

/tmp/data1/

tar: /tmp/data1/data1.tar: file is the archive; not dumped

/tmp/data1/b.txt

/tmp/data1/a.txt



# 查看, 在不指明使用绝对路径时, 将忽略压缩文档中的绝对路径

#tar -tvf data1.tar 

tar: Removing leading `/' from member names

drwxr-xr-x root/root         0 2014-11-22 11:16 /tmp/data1/

-rw-r--r-- root/root         0 2014-11-22 11:16 /tmp/data1/data1.tar

-rw-r--r-- root/root         0 2014-11-22 11:12 /tmp/data1/b.txt

-rw-r--r-- root/root         0 2014-11-22 11:12 /tmp/data1/a.txt



# 查看, 指明使用绝对路径

#tar -P -tvf data1.tar 

drwxr-xr-x root/root         0 2014-11-22 11:16 /tmp/data1/

-rw-r--r-- root/root         0 2014-11-22 11:16 /tmp/data1/data1.tar

-rw-r--r-- root/root         0 2014-11-22 11:12 /tmp/data1/b.txt

-rw-r--r-- root/root         0 2014-11-22 11:12 /tmp/data1/a.txt

 

所以, 在解压不包含绝对路径的压缩文档时不会解压到对应的绝对路径, 在解压包含绝对路径的压缩文档时, 如果不指明使用绝对路径, 同样不会把文件解压在对应的绝对路径. 同时, 在解压包含绝对路径的压缩文档时, 如果指明使用绝对路径, 此时-C参数失效

 

 

2. tar压缩格式对比

每次压缩资料时都是tar -cf, 现在要对一个较大的文件打包, 于是对各种压缩格式处理后的文件大小进行了对比:

tar -cvf data1.tar /tmp/data1/      # 不压缩

tar -cZvf data1.tar.z /tmp/data1/   # 普通压缩

tar -czvf data1.tar.gz /tmp/data1/  # gzip压缩

tar -cjvf data1.tar.bz2 /tmp/data1/ # bzip2压缩

tar -cJvf data1.tar.xz /tmp/data1/  # xz压缩



du -sh data1*

98M    data1.tar

67M    data1.tar.z

38M    data1.tar.gz

36M    data1.tar.bz2

27M    data1.tar.xz

简单的测试表明, xz格式的压缩后占用更少的空间. 当然, 这里只是从空间上进行对比.

 

你可能感兴趣的:(tar)