首页 > 代码库 > tar整理

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 namesdrwxr-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.tar67M    data1.tar.z38M    data1.tar.gz36M    data1.tar.bz227M    data1.tar.xz

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

 

tar整理