打包和压缩是2回事
Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压缩的后文件是 *.zip ,而 gzip 压缩后的文件 *.gz 。相应的解压缩命令则是 gunzip 和 unzip
tar除了打包和解包外,还可以压缩和解压
一、gzip 命令:
gzip test.txt
它会将文件压缩为文件 test.txt.gz,原来的文件则没有了,解压缩也一样
gunzip test.txt.gz
它会将文件解压缩为文件 test.txt,原来的文件则没有了,为了保留原有的文件,我们可以加上 -c 选项并利用 linux 的重定向
gzip -c test.txt > /root/test.gz
这样不但可以将原有的文件保留,而且可以将压缩包放到任何目录中,解压缩也一样
gunzip -c /root/test.gz > ./test.txt
二、zip 命令:
zip test.zip test.txt
它会将 test.txt 文件压缩为 test.zip ,当然也可以指定压缩包的目录,例如 /root/test.zip
unzip test.zip unzip test.zip -d /root/
它会默认将文件解压到当前目录,如果要解压到指定目录,可以加上 -d 选项
三、tar
最常用,打包后,以 gzip 压缩
tar -czvf /tmp/etc.tar.gz /etc
最常用,解压tar.gz
tar zxvf /tmp/etc.tar.gz -C 一个已经存在的目录
其他
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -cjvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
-C 后面必须跟已经存在的目录,不能自动创建目录。这个和cp命令不同,cp命令如果不存在这个目录就会自动创建这个目录!
如果没有-C,则解压到当前目录,且会自动创建以压缩文件名去掉后缀的目录