linux打包和压缩

Windows下最常见的压缩文件只有两种,.zip和.rar。可是Linux就不同了,有.Z、bz2、.gz、.tar、.tar.gz等众多的压 缩文件名,它们分别对应了各种压缩打包命令。要了解这些压缩打包命令的使用,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个 总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。Linux中的很多压缩命令只能针对一个文件进行压缩,当要压缩一大堆文件时,就得先 借助打包命令将这一大堆文件先打成一个包,然后再用压缩命令进行压缩。因此打包命令在Linux的应用中具有很重要的作用。

Linux下最常用的打包命令就是tar,使用tar命令打包后,就可以用其它的命令来进行压缩了。tar命令的使用方法如下:

tar [-cxtzjvfpPN] 文件与目录
参数说明:
-c :建立一个打包文件;
-x :解开一个打包文件;
-t :查看 tar包里面的文件;
(特别注意,在选择参数时,c/x/t仅能存在一个,不可同时存在,因为不可能同时压缩与解压缩。)
-z :打包后用gzip压缩,生成.tar.gz文件;
-j :打包后用zip2压缩,生成.tar.bz2文件;
-v :压缩的过程中显示文件;
-f :使用文件名,请留意,在f之后要立即接文件名,不要再加其它参数;
-p :保持原文件的属性;
-P :使用绝对路径来压缩;
-N :设定日期(yyyy/mm/dd),比后面接的日期还要新的文件才会被打包进新建的文件中;
--exclude FILE:在打包的过程中,不要将FILE打包。

举几个例子:

例一:将整个/etc目录下的文件全部打包成为/tmp/etc.tar
tar -cvf /tmp/etc.tar /etc   #仅打包,不压缩
tar -zcvf /tmp/etc.tar.gz /etc   #打包后,以gzip压缩
tar -jcvf /tmp/etc.tar.bz2 /etc   #打包后,以bzip2压缩

例二:查阅上述/tmp/etc.tar.gz文件内有哪些文件
tar -ztvf /tmp/etc.tar.gz

例三:将/tmp/etc.tar.gz文件解压缩到/usr/local/src下
cd /usr/local/src    #先将工作目录变换到/usr/local/src下
tar -zxvf /tmp/etc.tar.gz

例四:只将/tmp/etc.tar.gz内的etc/passwd解压到/tmp下
cd /tmp
tar -zxvf /tmp/etc.tar.gz etc/passwd

例五:将/etc内的所有文件备份下来,并且保存其权限!
tar -zxvpf /tmp/etc.tar.gz /etc

例六:在/home当中,比2005/06/01新的文件才备份
tar -N '2005/06/01' -zcvf home.tar.gz /home

例七:备份/home、/etc,但不要/home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

例八:将/etc打包后直接解开在/tmp底下,而不产生文件!
cd /tmp
tar -cvf - /etc | tar -xvf -



现在有一个需求,不知道该如何才能实现
压缩: tar czvf /data/backup/test.tar.gz /data/a/b/directory
解压:
cd /data/test
tar xzvf /data/backup/test.tar.gz

问题是,解压后的文件,在/data/test/data/a/b/directory里面
能否压缩时只保留directory以下的所有目录,以directory作为/,而不是/data/a/b/directory?

问题已经解决,找到了GNU tar的官方资料
http://www.delorie.com/gnu/docs/tar/tar_98.html

这样写就可以解决了
tar czvf /data/backup/test.tar.gz /data/a/b/directory
改成
tar czvf /data/backup/test.tar.gz -C /data/a/b(空格)directory


-C是临时切换工作目录,-P是绝对路径,在这里只用到-C参数就行了

### 回答1: Linux打包压缩是两个不同的概念。打包是将多个文件或目录打包成一个文件,以便于传输或备份。常见的打包工具有tar和cpio。而压缩则是将一个或多个文件压缩成一个更小的文件,以节省存储空间和传输时间。常见的压缩工具有gzip、bzip2和zip等。在Linux中,可以将打包压缩结合起来使用,例如使用tar和gzip一起打包压缩文件。 ### 回答2: Linux打包压缩是两种不同的操作。打包是将多个文件或文件夹打包成一个归档文件,而压缩则是将一个或多个文件压缩成一个更小的文件,以节约存储空间和传输时间。 打包通常使用tar工具,可以打包多个文件或文件夹,并将它们打包成一个.tar文件。例如,要打包当前目录下的所有文件和文件夹,可以使用如下命令: tar -cvf archive.tar * 其中-c表示创建新的归档文件,-v表示显示详细信息,-f后面指定要创建的归档文件的名称,*表示当前目录下的所有文件和文件夹。 压缩则可以使用Linux中的多种压缩工具,如gzip、bzip2和zip等。例如,要将一个文件压缩成gzip格式,可以使用如下命令: gzip file.txt 这将创建一个file.txt.gz压缩文件。同样地,bzip2命令可以压缩成bzip2格式,而zip命令可以创建zip格式的压缩文件。 需要注意的是,tar工具本身不会压缩文件,只是将文件打包成一个.tar文件。如果需要压缩打包后的文件,可以将打包命令和压缩命令合并使用: tar -czvf archive.tar.gz * 其中,-z表示使用gzip压缩,-j表示使用bzip2压缩,-Z表示使用compress压缩。 总之,Linux打包压缩是两个基本的文件处理操作,它们可以方便地将多个文件或文件夹打包压缩成一个单独的文件,以方便存储和传输。需要选择合适的工具和格式,以达到最佳的压缩效果。 ### 回答3: Linux打包压缩是两个不同的概念,虽然它们经常一起使用。打包一般指将多个文件或目录打包成一个文件,并保留原来的层次结构;压缩则是将一个或多个文件用压缩算法进行压缩,以减小它们的体积,方便传输和存储。 在Linux系统中,打包压缩常常用来备份或传输大量的文件。常见的打包命令是tar,它可以将多个文件或目录打包成一个文件,例如: tar -cvf backup.tar /home/user -c参数表示创建一个新的归档文件(archive),-v表示显示详细信息,-f表示指定打包文件名。 而压缩则需要使用压缩算法,常见的有gzip、bzip2、xz等。例如,使用gzip压缩: gzip backup.tar 这样就会生成一个名为backup.tar.gz的压缩文件,体积比原来的文件小很多。 需要注意的是,打包压缩是两个不同的操作,可以单独使用,也可以结合使用。如果需要备份大量文件且不需要压缩,只需使用tar命令即可;如果需要压缩,可以在打包完成后使用相应的压缩命令。例如: tar -cvf backup.tar /home/user gzip backup.tar 这样就会生成一个名为backup.tar.gz的压缩包,内含/home/user目录中的所有文件。同时注意,打包压缩的顺序不能颠倒,必须先打包压缩,否则无法正确解压缩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值