Shell命令-文件压缩解压缩之tar、unzip
文件及内容处理 - tar、unip
1.tar:打包压缩命令
tar命令的功能说明
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
tar命令常用语用于备份文件,tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
tar命令的语法格式
tar [OPTION...] [FILE]...
tar [参数] [文件] ...
tar命令的常用参数说明:
tar参数很多,表1为tar命令的参数及说明:
表1:
tar命令的参数及说明
| 参数选项 | 解释说明 |
|---|---|
| -A或--catenate | 新增文件到已存在的备份文件。 |
| -b 或--blocking-factor= | 设置每笔记录的区块数目,每个区块大小为12Bytes。 |
| -B或--read-full-records | 读取数据时重设区块大小。 |
| -c或--create | 建立新的备份文件。 |
| -C 或--directory= | 切换到指定的目录。 |
| -d或--diff或--compare | 对比备份文件内和文件系统上的文件的差异。 |
| -f 或--file= | 指定备份文件。 |
| -F或--info-script= | 每次更换磁带时,就执行指定的Script文件。 |
| -g或--listed-incremental | 处理GNU格式的大量备份。 |
| -G或--incremental | 处理旧的GNU格式的大量备份。 |
| -h或--dereference | 不建立符号连接,直接复制该连接所指向的原始文件。 |
| -i或--ignore-zeros | 忽略备份文件中的0 Byte区块,也就是EOF。 |
| -k或--keep-old-files | 解开备份文件时,不覆盖已有的文件。 |
| -K 或--starting-file= | 从指定的文件开始还原。 |
| -l或--one-file-system | 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。 |
| -L 或-tape-length= | 设置存放每体的容量,单位以1024 Bytes计算。 |
| -m或--modification-time | 还原文件时,不变更文件的更改时间。 |
| -M或--multi-volume | 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。 |
| -N 或--newer= | 只将较指定日期更新的文件保存到备份文件里。 |
| -o或--old-archive或--portability | 将资料写入备份文件时使用V7格式。 |
| -O或--stdout | 把从备份文件里还原的文件输出到标准输出设备。 |
| -p或--same-permissions | 用原来的文件权限还原文件。 |
| -P或--absolute-names | 文件名使用绝对名称,不移除文件名称前的"/"号。 |
| -r或--append | 新增文件到已存在的备份文件的结尾部分。 |
| -R或--block-number | 列出每个信息在备份文件中的区块编号。 |
| -s或--same-order | 还原文件的顺序和备份文件内的存放顺序相同。 |
| -S或--sparse | 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。 |
| -t或--list | 列出备份文件的内容。 |
| -T 或--files-from= | 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。 |
| -u或--update | 仅置换较备份文件内的文件更新的文件。 |
| -U或--unlink-first | 解开压缩文件还原文件之前,先解除文件的连接。 |
| -v或--verbose | 显示指令执行过程。 |
| -V 或--label= | 建立使用指定的卷册名称的备份文件。 |
| -w或--interactive | 遭遇问题时先询问用户。 |
| -W或--verify | 写入备份文件后,确认文件正确无误。 |
| -x或--extract或--get | 从备份文件中还原文件。 |
| -X 或--exclude-from= | 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。 |
| -z或--gzip或--ungzip | 通过gzip指令处理备份文件。 |
| -Z或--compress或--uncompress | 通过compress指令处理备份文件。 |
| - | 设置备份用的外围设备编号及存放数据的密度。 |
| --after-date= | 此参数的效果和指定"-N"参数相同。 |
| --atime-preserve | 不变更文件的存取时间。 |
| --backup= 或--backup | 移除文件前先进行备份。 |
| --checkpoint | 读取备份文件时列出目录名称。 |
| --concatenate | 此参数的效果和指定"-A"参数相同。 |
| --confirmation | 此参数的效果和指定"-w"参数相同。 |
| --delete | 从备份文件中删除指定的文件。 |
| --exclude= | 排除符合范本样式的问家。 |
| --group= | 把加入设备文件中的文件的所属群组设成指定的群组。 |
| --help | 在线帮助。 |
| --ignore-failed-read | 忽略数据读取错误,不中断程序的执行。 |
| --new-volume-script= | 此参数的效果和指定"-F"参数相同。 |
| --newer-mtime | 只保存更改过的文件。 |
| --no-recursion | 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。 |
| --null | 从null设备读取文件名称。 |
| --numeric-owner | 以用户识别码及群组识别码取代用户名称和群组名称。 |
| --owner= | 把加入备份文件中的文件的拥有者设成指定的用户。 |
| --posix | 将数据写入备份文件时使用POSIX格式。 |
| --preserve | 此参数的效果和指定"-ps"参数相同。 |
| --preserve-order | 此参数的效果和指定"-A"参数相同。 |
| --preserve-permissions | 此参数的效果和指定"-p"参数相同。 |
| --record-size= | 此参数的效果和指定"-b"参数相同。 |
| --recursive-unlink | 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。 |
| --remove-files | 文件加入备份文件后,就将其删除。 |
| --rsh-command= | 设置要在远端主机上执行的指令,以取代rsh指令。 |
| --same-owner | 尝试以相同的文件拥有者还原文件。 |
| --suffix= | 移除文件前先行备份。 |
| --totals | 备份文件建立后,列出文件大小。 |
| --use-compress-program= | 通过指定的指令处理备份文件。 |
| --version | 显示版本信息。 |
| --volno-file= | 使用指定文件内的编号取代预设的卷册编号。 |
tar命令的实践操作
范例1: 压缩文件
[root@oldboyedu ~]# mkdir /data
[root@oldboyedu ~]# cd /data
[root@oldboyedu /data]# touch {1..5}.txt
[root@oldboyedu /data]# ls
1.txt 2.txt 3.txt 4.txt 5.txt
[root@oldboyedu /data]# cd ..
[root@oldboyedu /]# tar zcvf /opt/data.tar.gz ./data
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
范例2: 查看压缩包里的内容:
-t
[root@oldboyedu /]# tar tf /opt/data.tar.gz
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
范例3: 解压缩
[root@oldboyedu /opt]# tar zxvf data.tar.gz
./data/
./data/1.txt
./data/2.txt
./data/3.txt
./data/4.txt
./data/5.txt
[root@oldboyedu /opt]# ls
data data.tar.gz
[root@oldboyedu /opt]# ls data
1.txt 2.txt 3.txt 4.txt 5.txt
[root@oldboyedu /opt]# tar xf data.tar.gz
范例3: 打包时指定目录参数:
-C
[root@oldboyedu /opt]# tar xf data.tar.gz -C /tmp/
[root@oldboyedu /opt]# ls /tmp/data
1.txt 2.txt 3.txt 4.txt 5.txt
范例4: 排除打包
[root@oldboyedu ~]# cd /data
[root@oldboyedu /data]# ls
1.txt 2.txt 3.txt 4.txt 5.txt
[root@oldboyedu /data]# tar zcvf oldboy.tar.gz ./* --exclude=4.txt --exclude=5.txt
./1.txt
./2.txt
./3.txt
[root@oldboyedu /data]# tar tf oldboy.tar.gz
./1.txt
./2.txt
./3.txt
[root@oldboyedu /data]# rm -f oldboy.tar.gz
[root@oldboyedu /data]# tar zcvf oldboy.tar.gz ./* --exclude={4,5}.txt
./1.txt
./2.txt
./3.txt
[root@oldboyedu /data]# tar zcvf oldboy.tar.gz ./* --exclude={1..4}.txt
./5.txt
./oldboy.tar.gz
[root@oldboyedu /data]# cat paichu.txt
1.txt
2.txt
3.txt
[root@oldboyedu /data]# tar zcvfX oldboy.tar.gz paichu.txt ./*
./4.txt
./5.txt
./oldboy.tar.gz
./paichu.txt
2. unzip:解压缩zip文件
unzip命令的功能说明
unzip命令用于解压缩zip文件,unzip为.zip压缩文件的解压缩程序。
unzip命令的语法格式
unzip[-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]
unzip[-cflptuvz][-agCjLMnoqsVX][-P ][.zip文件][文件][-d ][-x ] 或 unzip [-Z]
unzip命令的常用参数说明:
unzip参数很多,表1为unzip命令的参数及说明:
表1:
unzip命令的参数及说明
| 参数选项 | 解释说明 |
|---|---|
| -c | 将解压缩的结果显示到屏幕上,并对字符做适当的转换。 |
| -f | 更新现有的文件。 |
| -l | 显示压缩文件内所包含的文件。 |
| -p | 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。 |
| -t | 检查压缩文件是否正确。 |
| -u | 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。 |
| -v | 执行是时显示详细的信息。 |
| -z | 仅显示压缩文件的备注文字。 |
| -a | 对文本文件进行必要的字符转换。 |
| -b | 不要对文本文件进行字符转换。 |
| -C | 压缩文件中的文件名称区分大小写。 |
| -j | 不处理压缩文件中原有的目录路径。 |
| -L | 将压缩文件中的全部文件名改为小写。 |
| -M | 将输出结果送到more程序处理。 |
| -n | 解压缩时不要覆盖原有的文件。 |
| -o | 不必先询问用户,unzip执行后覆盖原有文件。 |
| -P | 使用zip的密码选项。 |
| -q | 执行时不显示任何信息。 |
| -s | 将文件名中的空白字符转换为底线字符。 |
| -V | 保留VMS的文件版本信息。 |
| - | X 解压缩时同时回存文件原来的UID/GID。 |
| [.zip文件] | 指定.zip压缩文件。 |
| [文件] | 指定要处理.zip压缩文件中的哪些文件。 |
| -d | 指定文件解压缩后所要存储的目录。 |
| -x | 指定不要处理.zip压缩文件中的哪些文件。 |
| -Z | unzip -Z等于执行zipinfo指令。 |
unzip命令的实践操作
范例1: 查看压缩文件中包含的文件
unzip -l abc.zip Archive: abc.zip
Length Date Time Name-------- ---- ---- ----
94618 05-21-10 20:44 a11.jpg
202001 05-21-10 20:44 a22.jpg
16 05-22-10 15:01 11.txt
46468 05-23-10 10:30 w456.JPG
140085 03-14-10 21:49 my.asp
-------- -------
483188 5 files
范例2:
-v参数用于查看压缩文件目录信息,但是不解压该文件。
unzip -v abc.zip
Archive: abc.zip
Length Method Size Ratio Date Time CRC-32 Name
-------- ------ ------- ----- ---- ---- ------ ----
94618 Defl:N 93353 1% 05-21-10 20:44 9e661437 a11.jpg
202001 Defl:N 201833 0% 05-21-10 20:44 1da462eb a22.jpg
16 Stored 16 0% 05-22-10 15:01 ae8a9910 ? +-|¥+-? (11).txt
46468 Defl:N 39997 14% 05-23-10 10:30 962861f2 w456.JPG
140085 Defl:N 36765 74% 03-14-10 21:49 836fcc3f my.asp
-------- ------- --- -------
483188 371964 23% 5 files
今天就写到这里,有什么疑问或出现什么错误,随时欢迎大神们发表评论指点迷津
更多精彩

