文件的归档和压缩。
归档文件(archive file)和压缩文件(compressed file)间的区别对用户来说十分重要。归档文件是一个文件和目录的集合,而这个集合被贮存在一个文件中。归档文件没有经过压缩 — 它所使用的磁盘空间是其中所有文件和目录的总和。压缩文件也是一个文件和目录的集合,且这个集合也被贮存在一个文件中,但是,它的贮存方式使其所占用的磁盘空间比其中所有文件和目录的总和要少。如果你在计算机上的磁盘空间不足,你可以压缩不常使用的、或不再使用但想保留的文件。你甚至可以创建归档文件,然后再将其压缩来节省磁盘空间。
首先介绍一下图形界面的那种:
一。在命令行下输入: file-roller &(&的作用就是直接打到后台去执行。)
或者从桌面左上角的那个应用程序下的Archive Manage进入
(因为在Linux下只能压缩文件不能压缩目录,所以要想压缩目录必须将其先使用tar命令先将目录以及目录一下的文件进行打包成一个文件,然后再进行压缩。)
打开文件归档器之后,新建一个压缩包,向里面添加一个文件或者目录,进行打包和压缩。打包必须用tar,压缩有gz,bz2,等。压缩成功后可以用du -sh etc.tr.gz (假设压缩的是etc)
解压缩:
选中你要解压缩的的某个压缩文件。 如 etc.tar.gz (如果你要全解压,那么你直接点击解压缩即可,要想只是解压缩一部分,那么可以打开该etc.tar.gz 文件选择你要解压缩的文件或目录,解压缩extract)
上面介绍了图形化的解压缩的方式,以下我们来介绍一下命令行的归档和压缩的方式:
二。
(1)linux解压 tar命令
tar命令
tar [-cxtzjvfpPN] 文件与目录 …
参数:
-c :建立一个压缩文件的参数指令(create 的意思),创建归档;
-x :解开一个压缩文件的参数指令!,提取归档
-t :查看 tarfile 里面的文件!测试和列出归档内容
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!显示详细信息
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
『 tar -zcvPf tfile sfile』才对喔!
-p(小写) :使用原文件的原来属性(属性不会依据使用者而变)
-P(大写) :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
-g : 使用gzip压缩
-j : 使用bzip2压缩
如:
tar zcf etc.tar.gz /etc/ 打包并压缩
tar zxf etc.tar.gz 解压缩
tar xf etc.tar.gz -C(大写) /opt 指定解压的目录为/opt
gunzip etc.tar.gz 和 gzip -d etc.tar.gz 都是指的解压缩的文件
追加文件:
如: tar zcf etc.tar.gz /etc/ 现在你压缩了/etc/ 想要追加/boot怎么办呢?
你应该先解压成包的形式才可以添加的啊!
所以你要用 gunzip etc.tar.gz 或 gzip -d etc.tar.gz 解压成 etc.tar
然后你要开始添加喽…
tar rf etc.tar /boot/ 此时你会将/boot/ 添加进去了哈。形成名字为 etc.tar
将包进行压缩:
tar zcf etc.tar.gz etc.tar 或者 gzip etc.tar
要是不相信已经加进去了可以:
tar zxf etc.tar.gz 解压之后查看真伪!
(2)
如果你只是想解压包里的一个,而不想解压所有的怎么办呢?
tar zf etc.tar.gz --get etc/passwd (为什么写成etc/passwd呢,而不写成/etc/passwd呢,因为你压缩的时候会把你那个/给去了,在压缩包里实际存在的就是以etc/passwd etc/shadow这样类似的形式存在的)
tar ztf etc.tar.gz | grep passwd (你已经解压了就不存在里啊。这个命令最好在未解压和解压其中一个的时候各执行一次,以确定你是否解压成功)
(3)
如果你想删除包里面的一个文件或者目录怎么办呢?
首先和追加一样,你要先把它解压成包的形式:
gunzip etc.tar.gz 这样变成了etc.tar
然后执行:
tar f etc.tar --delete etc/passwd (删除etc/passwd文件)
tar tf etc.tar | grep passwd (可以查看是否删除成功呢!同以上一样,最好在删除前后各执行一遍哦)