天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
我本楚狂人,凤歌笑孔丘。
手持绿玉杖,朝别黄鹤楼。
五岳寻仙不辞远,一生好入名山游。
------《庐山谣寄卢侍御虚舟》
文章目录
- Linux压缩解压语法大全及示例演示
Linux入门专栏
Linux入门学习指南
Linux入门学习指南(二)
Linux压缩解压语法大全及示例演示
1. tar命令详解
tar可以为文件和目录创建打包文件
tar可以在打包文件中变更文件或者想文件中加入新的文件
1.1 语法
tar打包文件的语法
tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项必须有(告诉tar要做什么),辅选项是辅助使用,可以选用
1.2 参数与描述
主选项的参数和描述如下
| 参数 | 描述 |
|---|---|
| c | 创建新的档案文件,如果用户想备份一个目录或者一些文件,则需选择这个选项 |
| r | 把存档的文件追加到档案文件的末尾 |
| t | 列出档案文件的内容,查看已经备份的文件列表 |
| u | 更新文件,新增的文件取代备份文件,若备份文件中找不到更新的文件,则把它追加到备份文件的最后 |
| x | 从档案文件中释放文件 |
辅助选项的参数与描述如下
| 参数 | 描述 |
|---|---|
| b | 为磁带机设定的,其后跟一个数字,用于说明区块大小,系统预设值为20(20*512bytes) |
| f | 使用档案文件或者设备,这个选项通常是必须 |
| k | 保存已经存在的文件,如我们把文件还原,在还原过程中,遇到相同的文件,不会进行覆盖 |
| m | 在还原文件时,把所有文件的修改时间设定为现在 |
| M | 创建多卷的档案文件,以便在几个磁盘中存放 |
| v | 详细报告tar处理的文件信息,如无此选项,trar不报告文件信息 |
| w | 每一步都要求确认 |
| z | 用gzip来压缩或解压文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要用该选项进行解压 |
1.3 举例
把/test目录下包括其子目录的全部做备份,备份文件名为test.tar
tar cvf test.tar /test
把/test目录下包括其子目录的全部做备份,进行压缩,文件名为test.tar.gz
tar czvf test.tar.gz /test
把test.tar.gz文件还原并解压缩
tar xzvf test.tar.gz
查看usr.tar备份文件的内容,并以分屏方式显示在显示器上
tar tvf test.tar | more
用户在/dev/d0设备的软盘中创建一个备份文件,并将/test目录中的所有文件拷贝到备份文件中
tar cf /dev/d0 /test
恢复设备磁盘中的文件,使用xf选项
tar xf /deb/d0
若备份文件的大小超过了设备可用的存储空间,如果是软盘,可创建一个多卷的tar备份文件,M选项指示tar命令提示你使用新的存储设备
当使用M选项向一个软驱进行存档时,tar命令在一张软盘已满的时候会提醒再放入一张新的磁盘,此时即可把tar档案存入几张磁盘中
tar cMf /dev/d0 /test
要恢复几张磁盘中的档案,只要将第一张放入软驱,然后输入有x和M选项的tar命令,必要时提醒放入另一张软盘
tar xMf /dev/d0
2. gzip命令
2.1 语法
语法如下
gzip [选项] 压缩或解压的文件名
2.2 选项和含义
参数与描述如下
| 参数 | 描述 |
|---|---|
| -c | 将输出写到标准输出上,保留原有文件 |
| -d | 将压缩文件解压 |
| -l | 对每个压缩文件显示下列字段:压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件的名字 |
| -r | 递归式查找指定目录并压缩其中的所有文件或者解压 |
| -t | 测试,检查压缩文件是否完整 |
| -v | 对每个压缩和解压的文件显示文件名和压缩比 |
| -num | 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。 |
2.3 举例
目录/test下有文件t.txt,y.txt,z.py
把/test目录下的每个文件压缩成.gz文件
首先进入/test目录下
cd /test
压缩当前目录的所有文件
gzip *
查看当前目录的文件内容
ls
可以看到所有文件均被压缩
把上面例子中压缩的文件解压,并列出详细的信息
gzip -dv *
然后查看解压后的文件
ls
详细显示压缩后的文件信息,不解压
gzip -l *
压缩一个tar备份文件,压缩后的扩展名为.tar.gz
gzip test.tar
压缩后查看文件
ls
文件名变为test.tar.gz
3. unzip命令
3.1 语法
语法如下
unzip [选项] 压缩文件名.zip
3.2 参数与含义
参数与描述如下
| 参数 | 描述 |
|---|---|
| -x | 文件列表 解压缩文件,不包括指定的file.文件 |
| -v | 查看压缩文件目录,不解压 |
| -t | 测试文件有无损坏,不解压 |
| -d | 目录 把压缩文件解压到指定目录下 |
| -z | 只显示压缩文件的注解 |
| -n | 不覆盖已经村在的文件 |
| -o | 覆盖已存在的文件且不要求用户确认 |
| -j | 不重建文档的目录结构,把所有文件解压到同一个目录下 |
3.3 举例
将压缩文件在当前目录下解压
unzip 压缩文件名.zip
将压缩文件在指定目录下解压,如果已有相同的文件存在,则不覆盖原先的文件
unzip -n 压缩文件名.zip -d 指定的目录
查看压缩文件目录,不解压
unzip -v 压缩文件名.zip
4. zgrep命令
与grep命令用法相似
在压缩文件中寻找匹配的正则表达式
如果想查看某个压缩文件中有没有哪些内容,可以用zgrep命令
5. tar命令2
5.1 语法
语法如下
tar [-cxtzjvfpPN] 文件与目录 ...
5.2 参数与描述
参数与描述如下
| 参数 | 描述 |
|---|---|
| -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)还要新的才会被打包进新建的文件中 |
--exclude | FILE 在压缩的过程中,不要讲FILE打包 |
5.3 举例
将整个目录下的文件全部打包
tar -cvf 打包文件名.tar 待打包目录
tar -zcvf 打包文件名.tar 待打包目录
tar -jcvf 打包文件名.tar.bz2 待打包目录
注意: 参数f之后的文件档名为自定义的,习惯用.tar作为后缀 如果加z参数,则以.tar.gz或.tgz来代表gzip压缩过的tar file 如果加j参数,则以.tar.bz2来作为附档名
执行上述命令会提示信息如下
tar:Removing leading `/' from member names
这是关于绝对路径的特殊设定
查看上述压缩文件内容有那些文件
tar -ztvf 压缩文件名.tar.gz
由于使用gzip压缩,所以查看这个tar文件内的文件时,要加上z参数
将压缩文件解压在指定目录下
进入指定目录
cd 目录
解压压缩文件
tar -zxvf 压缩文件全路径名.tar.gz
注
我们可以将压缩文件在任何地方解压,首先进入任意目录位置,然后执行解压命令,压缩文件内容就会解压到当前目录中
在指定目录下,解压压缩文件中的某个文件
进入指定目录
cd 目录
解压压缩文件中的某个文件
tar -zxvf 待解压文件名.tar.gz 需要解压的文件名
如将压缩文件test.tar.gz中的test/name文件解压
则执行命令tar -zxvf /test.tar.gz test/name
可通过tar -ztvf查看压缩文件的内容文件名
将指定目录下的所有文件压缩,并保存其权限
tar -zxvpf 压缩文件名.tar.gz 目录
注,一定要加-p保留原本文件属性
在指定目录中,压缩比某日期新的文件
tar -N 'yyyy/mm/dd' -zxvf 压缩文件名.tar.gz 目录
如在/test目录中,比2024/06/17新的文件进行压缩
tar -N '2024/06/17' -zcvf test.tar.gz /test
压缩目录/test1,/test2,但不要/test1/test.txt
tar --exclude /test1/test.txt -zcvf test.tar.gz /test1/* /test2
将目录1打包后解压到另一个目录2中,不产生文件
cd 目录1
tar -cvf - 目录2 | tar -xvf -
注
用法与cp相似
cp -r 目录2 目录1
6. gzip,zcat命令
6.1 语法
语法如下
gzip [-cdt#] 待压缩文件名
或
zcat 压缩文件名.gz
6.2 参数与描述
参数与描述如下
| 参数 | 描述 |
|---|---|
| -c | 将压缩的资料输出到屏幕上,可透过资料流重导向来处理 |
| -d | 解压缩的参数 |
| -t | 可以用来检验一个压缩文件的一致性,看文件有无错误 |
| -# | 压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,预设值是-6 |
6.3 举例
将文件复制到指定目录1并用gzip压缩
先进入目标目录下
cd 目录1
复制文件到当前目录
cp 文件全路径名 .
压缩文件
gzip 文件名
此时文件后缀变为.gz
将压缩后的文件内容读取出来
zcat 压缩文件名.gz
此时屏幕会显示压缩文件解压后的文件内容
将压缩文件解压
gzip -d 待解压文件名.gz
将解压的文件用最佳压缩比压缩,并保留原本的文件
gzip -9 -c 待压缩文件名 > 压缩文件名.gz
7. bzip,bzcat命令
7.1 语法
语法如下
bzip2 [-cdz] 文件名
或
bzcat 压缩文件名.bz2
7.2 参数和描述
参数描述如下
| 参数 | 描述 |
|---|---|
| -c | 将压缩过程产生的资料输出到屏幕 |
| -d | 解压的参数 |
| -z | 压缩的参数 |
| -# | 与gzip相同,计算压缩比的参数,-9最佳,-1最快 |
7.3 举例
将文件用bzip压缩
bzip2 -z 待压缩文件名
将压缩文件内容读取
bzcat 压缩文件名.bz2
此时解压后的内容会显示在屏幕上
将文件解压
bzip2 -d 待解压文件名.bz2
将文件以最佳压缩比压缩,并保留源文件
bzip2 -9 -c 待压缩文件 > 压缩文件名.bz2
8. compress命令
8.1 语法
语法如下
compress [-dcr] 文件或目录
8.2 参数和描述
| 参数 | 描述 |
|---|---|
| -d | 用来接压缩的参数 |
| -r | 可以连同目录下的文件也同时给予压缩 |
| -c | 将压缩资料输出为标准输出 |
8.3 举例
将文件复制到指定目录1,并压缩
进入指定目录1
cd 目录1
复制文件当前目录
cp 文件全路径名
压缩文件
compress 待压缩文件名
查看压缩后的文件详细信息
ls -l
将压缩文件解压
compress -d 压缩文件名.Z
将文件压缩成另一个文件来备份
compress -c 待压缩文件 > 压缩文件名.back.Z
查看压缩后的列表
ll *
-c参数将压缩过程输出到屏幕
9. dd命令
9.1 语法
语法如下
dd if="input_file"
of="outout_file" bs="block_size" count="number"
9.2 参数和描述
参数和描述如下
| 参数 | 描述 |
|---|---|
| if | 指input file |
| of | 指output file |
| bs | block的大小,没有设定时,预设为512bytes |
| count | 指多少个bs |
9.3 举例
将文件/test/name备份到压缩文件/x/name.back中
dd if=/test/name
of=/x/name.back
3+1 records in
3+1 records out
查看文件
ll /test/name
/x/name.back
注意:由于未设定bs,预设的bs为512bytes,所以3+1表示的就是3个完整的512bytes和一个不满512bytes的block
备份/test/ddd的MBR
dd if=/test/ddd
of=/tmp/mbr.back bs=512 count=1
1+0 records in
1+0 records out
MBR为512bytes,放在硬盘第一个部分,这个方式可以将MBR的内容资料都记录下来
将整个/test/ddd partition备份
dd if=/test/ddd
of=/some/path/filename
这个指令将整个partition的内容备份下来 of后面接的内容必须不在/test/ddd目录中,否则读不完
10. cpio命令
10.1 语法
语法如下
cpio -covB > [file|device]
cpio -icduv
10.2 参数和描述
参数描述如下
| 参数 | 描述 |
|---|---|
| -o | 将资料copy输出到文件或者设备 |
| -i | 将资料从文件或设备中拷贝出来到系统当中 |
| -t | 查看cpio建立的文件或装置的内容 |
| -c | 一种较新portable format方式储存 |
| -v | 让储存的过程中文件名称可以在屏幕上显示 |
| -B | 让预设的blocks可以增加到5120bytes,预设值是512bytes,这样的好处是可以让大文件的存储速度加快 |
| -d | 自动建立目录,由于cpio的内容可能不是在同一个目录内,反备份的过程会有问题,这时加上-d参数可以自动将需要的目录创建 |
| -u | 自动将较新的文件覆盖较旧的文件 |
10.3 举例演示
将所有系统上的资料写入磁带机内
find / -print | cpio -covB > /dev/st0
一般情况下,使用SCSI界面的磁带机,代号是/dev/st0
检查磁带机上有什么文件
cpio -icdvt
cpio -icdvt /test/content
第一个动作是将磁带机内的文件列出到屏幕,第二个动作将所有的文件记录到/test/content文件
将磁带上的资料还原回来
cpio -icduv
一般情况下,使用SCSI界面的磁带机,代号是/dev/st0
将/etc下的所有文件备份到/root/etc.cpio
find /etc -type
f | cpio -o > /root/etc.cpio
感谢阅读,祝君暴富!
原文链接: https://hanshan.blog.csdn.net//article/details/139770762