Linux笔记4 Linux 系统常见的压缩命令
gzip, zcat


默认的状态下原本的文件会被压缩成为 .gz 的档名, 原始文件不再存在了
使用 gzip 压缩的文件在 Windows 系统中,竟然可以被 WinRAR 这个软件解压
如果原本的文件是是文字档,可以尝试使用 zcat 去读取!

gzip 的压缩已经最佳化过了,所以虽然 gzip 提供 1~9 的压缩等级,不过使用默认的 6 就非常好用了!
重点在那个 -c 与 > 的使用!
bzip2, bzcat
若说 gzip 是为了取代 compress 并提供更好的压缩比而成立的,那么 bzip2 则是为了取代 gzip 并提供更佳的压缩比而来的。
tar
tar 可以将多个目录或文件打包成一个大文件,同时还可以透过 gzip/bzip2 的支持,将该文件同时进行压缩!由於 tar 的使用太广泛了,目前 Windows 的 WinRAR 也支持 .tar.gz 档名的解压缩

其实最简单的使用 tar 就只要记忆底下的方式即可:
- 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
- 查 询:tar -jtv -f filename.tar.bz2
- 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
如果不加 [-j|-z] 的话,档名最好取为 *.tar 即可。如果是 -j 选项,代表有 bzip2 的支持,因此档名最好就取为 *.tar.bz2 ,因为 bzip2 会产生 .bz2 的扩展名之故! 至於如果是加上了 -z 的 gzip 的支持,那档名最好取为 *.tar.gz 喔!
由於『 -f filename 』是紧接在一起的,过去很多文章常会写成『-jcvf filename』,这样是对的, 但由於选项的顺序理论上是可以变换的,所以很多读者会误认为『-jvfc filename』也可以~事实上这样会导致产生的档名变成 c ! 因为 -fc 嘛!所以罗,建议您在学习 tar 时,将『 -f filename 』与其他选项独立出来,会比较不容易发生问题。... -jcv -f ...
使用tar命令打包的文件都会拿掉根目录 /
假设将备份数据etc.tar.bz2在 /tmp 解开,那么解压缩的档名就会变成『/tmp/etc/xxx』。 但『如果没有拿掉根目录,解压缩后的档名就会是绝对路径, 亦即解压缩后的数据一定会被放置到 /etc/xxx 去!』如此一来,你的原本的 /etc/ 底下的数据, 就会被备份数据所覆盖过去了!
将备份的数据解压缩,并考虑特定目录的解压缩动作 (-C 选项的应用)

仅解开单一文件的方法
1.如果不知道要解压的文件名,先进行查找 e.g.解开shadow
tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
2. 将该文件解开!语法与实际作法如下:
[root@www ~]# tar -jxv -f 打包档.tar.bz2 待解开档名
[root@www ~]# tar -jxv -f /root/etc.tar.bz2 etc/shadow
nicole@ubuntu:~$ tar -jtv -f testtar.tar.bz2 drwxrwxr-x nicole/nicole 0 2019-12-26 01:07 home/nicole/testtar/ -rw-rw-r-- nicole/nicole 0 2019-12-26 01:06 home/nicole/testtar/3~ -rw-rw-r-- nicole/nicole 0 2019-12-26 01:06 home/nicole/testtar/1 -rw-rw-r-- nicole/nicole 327 2019-12-26 01:07 home/nicole/testtar/3 -rw-rw-r-- nicole/nicole 0 2019-12-26 01:06 home/nicole/testtar/2 nicole@ubuntu:~$ tar -jxv -f testtar.tar.bz2 home/nicole/testtar/3 home/nicole/testtar/3
1 root@ubuntu:/# tar -jtv -f tmp/test.tar.bz2 | grep 1.txt 2 -rw-r--r-- root/root 1354 2019-12-26 22: 26 test/1.txt 3 root@ubuntu:/ tar -jxv -f tmp/test.tar.bz2 test/1.txt 4 test/1.txt 5 root@ubuntu:/# 11 test 6 用量12 7 drwxr-xr-x 2 root root 4096 Dec 26 22: 36 ./ 8 drwxr-xr-x 23 root root 4096 Dec 25 22:36 ../ 9 -rw-r--r-- 1 root root 1354 Dec 25 22:36 1.txt
打包某目录,但不含该目录下的某些文件
1 root@ubuntu:/tmp# tar -jcv -f test1.tar.bz2 --exclude=test/2.txt test 2 test/ 3 test/1.txt 4 test/3.txt 5 root@ubuntu:/tmp# tar -jtv -f test1.tar.bz2 6 drwxr-xr-x root/root 0 2019-12-26 23:23 test/ 7 -rw-r--r-- root/root 0 2019-12-26 23:23 test/1.txt 8 -rw-r--r-- root/root 0 2019-12-26 23:23 test/3.txt
posted on 2019-12-24 11:29 Nicole2333 阅读(77) 评论(0) 收藏 举报
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号