上海浦东网站建设,建设部网站公示钦州公租房摇号查询,汕头网站建设公司,广州定制网站公司文章目录前言一. tar命令介绍二. 语法格式及常用选项三. 参考案例3.1 仅打包不压缩3.2 打包后使用调用压缩命令进行压缩3.3 列出文件的内容3.4 追加文件到tar命令中3.5 释放文件到指定的目录四 . 各种压缩方式的比较总结前言
大家好#xff0c;又见面了#xff0c;我是沐风晓… 文章目录前言一. tar命令介绍二. 语法格式及常用选项三. 参考案例3.1 仅打包不压缩3.2 打包后使用调用压缩命令进行压缩3.3 列出文件的内容3.4 追加文件到tar命令中3.5 释放文件到指定的目录四 . 各种压缩方式的比较总结前言
大家好又见面了我是沐风晓月本文是专栏【linux基本功-基础命令实战】的第44篇文章。
专栏地址[linux基本功-基础命令专栏] 此专栏是沐风晓月对Linux常用命令的汇总希望能够加深自己的印象以及帮助到其他的小伙伴。
如果文章有什么需要改进的地方还请大佬不吝赐教。 个人主页我是沐风晓月 个人简介大家好我是沐风晓月双一流院校计算机专业 座右铭 先努力成长自己再帮助更多的人 一起加油进步 欢迎大家这里是CSDN我总结知识的地方喜欢的话请三连有问题请私信 一. tar命令介绍
tar命令用来压缩和解压文件。tar本身不具有压缩功能。他是调用其他具有压缩功能的命令实现的。
tar命令可以为linux的文件和目录创建档案。
利用tar可以为某些特定文件创建档案备份文件也可以在档案中改变文件或者向档案中加入新的文件。
利用tar命令可以把一大堆的文件和目录全部打包成一个文件一般我们经常用于打包压缩后进行网络传输因为这会大大节约网络带宽。
首先要弄清两个概念打包和压缩。 打包是指将一大堆文件或目录变成一个总的文件比如我们平时的快递纸箱子我们把多个纸箱子放在一起大箱子套在小箱子里 这是打包。 压缩则是将一个大的文件通过一些压缩算法变成一个小文件比如我们把上面打包好的纸箱子都拆开然后叠在一起放在袋子里再用真空机抽真空让体积更小
为什么要区分这两个概念呢这源于Linux中很多压缩程序只能针对一个文件进行压缩这样当你想要压缩一大堆文件时你得先将这一大堆文件先打成一个包tar命令然后再用压缩程序进行压缩bzip2和gzip命令
当然了tar命令可以显示打包和压缩同步运行。
二. 语法格式及常用选项
依据惯例我们还是先查看帮助使用 tar --help
[rootmufeng ~]# tar --help
用法: tar [选项...] [FILE]...GNU ‘tar’
将许多文件一起保存至一个单独的磁带或磁盘归档并能从归档中单独还原所需文件。示例tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件
archive.tar。tar -tvf archive.tar # 详细列举归档文件 archive.tar
中的所有文件。tar -xf archive.tar # 展开归档文件 archive.tar
中的所有文件。主操作模式:-A, --catenate, --concatenate 追加 tar 文件至归档-c, --create 创建一个新归档-d, --diff, --compare 找出归档和文件系统的差异--delete 从归档(非磁带)中删除-r, --append 追加文件至归档结尾-t, --list 列出归档内容--test-label 测试归档卷标并退出-u, --update 仅追加比归档中副本更新的文件-x, --extract, --get 从归档中解出文件压缩选项:-a, --auto-compress 使用归档后缀名来决定压缩程序-I, --use-compress-programPROG通过 PROG 过滤(必须是能接受 -d选项的程序)-j, --bzip2 通过 bzip2 过滤归档-J, --xz 通过 xz 过滤归档--lzip 通过 lzip 过滤归档--lzma 通过 lzma 过滤归档--lzop--no-auto-compress 不使用归档后缀名来决定压缩程序-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档-Z, --compress, --uncompress 通过 compress 过滤归档设备选择和切换:-f, --fileARCHIVE 使用归档文件或 ARCHIVE 设备--force-local即使归档文件存在副本还是把它认为是本地归档-F, --info-script名称, --new-volume-script名称在每卷磁带最后运行脚本(隐含 -M)-L, --tape-lengthNUMBER 写入 NUMBER × 1024 字节后更换磁带-M, --multi-volume 创建/列出/解压多卷归档文件--rmt-commandCOMMAND 使用指定的 rmt COMMAND 代替 rmt--rsh-commandCOMMAND 使用远程 COMMAND 代替 rsh--volno-fileFILE 使用/更新 FILE 中的卷数
tar命令的帮助够长的我这里是尽可能的缩短了还是挺长没办法如果你要看详细的参数可以向我一样运行tar --help 为了更直观一些我们把常用的参数用表格来展示
参数描述-c建立压缩档案-x解压-t查看内容-r向压缩归档文件末尾追加文件-u更新原压缩包中的文件排
以上这五个是独立的命令压缩解压都要用到其中一个可以和别的命令连用但只能用其中一个。
参数描述-z有gzip属性的-j有bz2属性的-Z有compress属性的-v显示所有过程-O将文件解开到标准输出
以上这几个参数是可选的再压缩或者解压的时候可以选择其中任意一个。
一个特别的参数 -f
-f 后面必须接档案名
有了具体的参数之后我们再来看实战案例
三. 参考案例
3.1 仅打包不压缩
打包命令是-c参数
创建测试文件
[rootmufeng ~]# mkdir test
[rootmufeng ~]# cd test
[rootmufeng test]# cp /etc/passwd /etc/hosts ./
[rootmufeng test]# ls
hosts passwd
案例一 对文件进行打包
进行打包操作
[rootmufeng test]# tar -cvf passwd.tar passwd
passwd
[rootmufeng test]# ls
hosts passwd passwd.tar
[rootmufeng test]# ll -h
总用量 20K
-rw-r--r--. 1 root root 182 2月 9 22:15 hosts
-rw-r--r--. 1 root root 2.3K 2月 9 22:15 passwd
-rw-r--r--. 1 root root 10K 2月 9 22:16 passwd.tar这里你会发现一个奇怪的问题打包完的文件居然比源文件大
这是因为打包后的文件会多了一些额外的信息显得文件变大了。ps: 非妃是公主大佬 解释说 tar算是一种文件结构会加一些文件头方便解包同时还有数据校验和啥的保证数据前后一致所以会多一些
注意 这里的-c 参数后面的v可以不写。 命令可以变成 tar -cf
案例二 对目录进行打包
[rootmufeng test]# tar -cvf etc.tar /etc/
tar: 从成员名中删除开头的“/”
/etc/
/etc/fstab
这里有个提示 tar: 从成员名中删除开头的“/”
为什么要删除到开头的/呢 当然是为了安全。
比如你三年前打包了centos6系统的/etc/目录今天你想再 cenots7 上解压查看一下结果一解压把/etc/目录给覆盖了是不是就不好玩了。
所以去掉/ 解压的时候是最安全的。
案例三 对多个文件进行打包
[rootmufeng test]# tar -cvf b.tar hosts passwd
hosts
passwd
目录也是文件你把目录写在后面进行打包也是可以的。
3.2 打包后使用调用压缩命令进行压缩
默认情况下有三种命令
参数使用调用的命令打包后的文件后缀ztar -czvfgziptar.gzjtar -jcvfbzip2tar.bz2Jtar -Jcvfxztar.xz
注意 解压缩用 x 参数
案例一 打包后用 gzip 压缩
[rootmufeng test]# tar -czvf passwd.tar.gz passwd
passwd
解压缩 tar -zxvf
案例二 打包后用bzip2压缩
[rootmufeng test]# tar -cjvf passwd.tar.bz2 passwd
passwd
解压缩 tar -jxvf
案例三 打包后调用xz压缩
[rootmufeng test]# tar -Jcvf passwd.xz passwd
passwd
解压缩 tar - Jxvf
这里有个疑问 后缀可以不用类似tar.bz2 这种形式吗
答案是可以的之所以用这种形式是为了我们自己好区分再解压的时候可以使用相同的方式解压。
但如果我们不用tar.bz2这种形式比如三种方式都test.tar 。
我们其实可以使用 file命令查看文件用的哪个压缩命令压缩的进而选择合适的参数解压比如
[rootmufeng test]# tar -czvf test1.tar passwd
passwd[rootmufeng test]# tar -jcvf test2.tar passwd
passwd
[rootmufeng test]# ls test1.tar test2.tar
test1.tar test2.tar
你看这两个tar包就很难区分这时候我们用file命令
[rootmufeng test]# file test1.tar
test1.tar: gzip compressed data, from Unix, last modified: Thu Feb 9 22:57:17 2023
[rootmufeng test]# file test2.tar
test2.tar: bzip2 compressed data, block size 900k
这样就很容易区分开,然后再选择使用 Jxvf 还是zxvf
为了简化在解压的时候我们这里的-v参数可以省略同样的J,j,z 这些参数也可以省略
于是不管调用哪个命令来压缩我们最终都可以使用tar -xf 来解压
[rootmufeng test]# tar xf passwd.tar.gz
3.3 列出文件的内容
此处使用-t参数这个参数可以让我们不解压也能看到文件的内容
[rootmufeng test]# tar -tvf passwd.xz
-rw-r--r-- root/root 2323 2023-02-09 22:48 passwd
[rootmufeng test]#
3.4 追加文件到tar命令中
有时候我们执行完打包发现有个目录忘记打包进去这时候可以用-r追加文件
这里需要注意追加文件只适用于未压缩之前也就是打包状态无法往已经压缩好的文件里追加
#打包
rootmufeng test]# tar cvf mufeng.tar passwd
passwd
#不解包查看内容
[rootmufeng test]# tar tvf mufeng.tar
-rw-r--r-- root/root 2323 2023-02-09 22:48 passwd
# 追加
[rootmufeng test]# tar -rvf mufeng.tar /etc/hosts
tar: 从成员名中删除开头的“/”
/etc/hosts
[rootmufeng test]# tar tvf mufeng.tar
-rw-r--r-- root/root 2323 2023-02-09 22:48 passwd
-rw-r--r-- root/root 182 2022-12-08 20:24 etc/hosts
[rootmufeng test]#
3.5 释放文件到指定的目录
解压文件使用的是 tar -xf
到指定目录使用的是 -C参数
例如 我们把mufeng目录释放到/tmp目录下
[rootmufeng test]# tar xf mufeng.tar -C /tmp
四 . 各种压缩方式的比较
我们用不同的方式对同一个文件进行压缩然后对压缩命令进行对比
[rootmufeng test]# tar zcf etc.tar.gz /etc/
tar: 从成员名中删除开头的“/”
[rootmufeng test]# tar jcf etc.tar.bz2 /etc/
tar: 从成员名中删除开头的“/”
[rootmufeng test]# tar Jcf etc.tar.xz /etc/
tar: 从成员名中删除开头的“/”
[rootmufeng test]# ll -h
总用量 28M
-rw-r--r--. 1 root root 9.4M 2月 9 23:14 etc.tar.bz2
-rw-r--r--. 1 root root 11M 2月 9 23:14 etc.tar.gz
-rw-r--r--. 1 root root 7.6M 2月 9 23:14 etc.tar.xz
[rootmufeng test]#
通过对比我们发现 tar -zxvf 的形式 压缩的比例最高。
使用time命令对三者的运行时间进行统计
[rootmufeng test]# time tar zcf etc.tar.gz /etc/
tar: 从成员名中删除开头的“/”real 0m0.910s
user 0m0.495s
sys 0m0.522s
[rootmufeng test]# time tar jcf etc.tar.bz2 /etc/
tar: 从成员名中删除开头的“/”real 0m2.271s
user 0m2.133s
sys 0m0.267s
[rootmufeng test]# time tar Jcf etc.tar.xz /etc/
tar: 从成员名中删除开头的“/”real 0m10.291s
user 0m8.544s
sys 0m2.166s
我们发现时间最长的就是 xz 所以他的压缩比率也最高。
通过上面的例子我们发现 gzip压缩速度最快 bzip2压缩生成的文件比gzip小但使用不如gzip广 xz压缩工具相对较新但是会提供最佳的压缩率压缩时间也最长
总结
sort命令在日常工作中应用的比较广泛一定要认真学习记熟记牢常用参数。 好啦这就是今天要分享给大家的全部内容了我们下期再见✨ ✨ ✨ 如果你喜欢的话就不要吝惜你的一键三连了~