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格式的压缩后占用更少的空间. 当然, 这里只是从空间上进行对比.
时间: 2024-10-01 07:30:57