目录
实验准备
打开终端窗口,依次输入以下命令:$ cd base
$ mkdir compress
在当前目录下新建文件夹compress,作为本实验的工作目录。
再将file.txt和longfile.txt复制到工作目录:$ cp file.txt longfile.txt compress
$ cd compress
$ mkdir dir//创建一个用于打包的文件夹
文件的打包
是指将多个文件打包成一个文件,由于Linux的很多压缩程序只能对一个文件进行压缩,因此首先要将多个文件打包成一个文件,这个过程并不会减小文件占用的磁盘空间,常用的打包命令为tar。
语法:
tar [-cvf] 生成tar包名 将要打包的文件和目录
选项与参数:
-
-c 指定打包后的tar包名
-
-v 查看打包过程
-
-f 指定将要打包的文件和目录
示例:$ tar -cvf tar1.tar dir file.txt longfile.txt
dir/
file.txt
longfile.txt
文件的打包解包
语法
tar [-xvf] 解压的包名 [-C] 解压到的文件夹
选项与参数:
-
-x 从打包文件中解压
-
-v 查看解压过程
-
-f 指定解压的tar包
-
-C 指定解压到的文件夹
示例:$ rm -rf file.txt longfile.txt dir
#解压到默认的当前文件夹
$ tar -xvf tar1.tar
dir/
file.txt
longfile.txt
#解压到指定文件夹$ tar -xvf tar1.tar -C dir
dir/
file.txt
longfile.txt
.gz格式的压缩
gzip只能压缩文件,不能压缩目录。
语法:
gzip [-cdrvlf] 要压缩的文件名
选项与参数:
-
-d 解压.gz文件
-
-c 保留原文件,并将输出写到标准输出中
-
-r 递归地压缩指定的目录
-
-v 显示压缩过程信息
-
-l 显示压缩文件的详细信息
-
-f 强制压缩
示例:$ gzip -v longfile.txt
longfile.txt: 46.7% -- replaced with longfile.txt.gz
$ gzip -l longfile.txt.gz
compressed uncompressed ratio uncompressed_name
10930 20435 46.7% longfile.txt
.gz格式的解压
语法:
gunzip [-crvlf] 要解压的.gz文件
选项与参数:
-
-c 将解压后的文件写到标准输出
-
-r 递归地解压指定的目录
-
-v 显示解压过程信息
-
-l 显示压缩文件的详细信息
-
-f 强制解压
示例:$ gunzip -v longfile.txt.gz
longfile.txt.gz: 46.7% -- replaced with longfile.txt
.zip格式的压缩
语法:
zip [-drqvx] 压缩包名 将要打包的文件和目录
选项与参数:
-
-d 从压缩文件内删除指定的文件
-
-r 递归地压缩指定的目录
-
-q 不显示压缩过程信息
-
-v 显示压缩过程或版本信息
-
-x 压缩时排除符合条件的文件
示例:$ zip -r dir.zip dir
adding: dir/ (stored 0%)
adding: dir/file.txt (stored 0%)
adding: dir/dir/ (stored 0%)
adding: dir/longfile.txt (deflated 47%)
.zip格式的解压
语法:
unzip [-fndqv] 要解压的.zip文件
选项与参数:
-
-f 解压缩时覆盖现有的文件
-
-n 解压缩时不覆盖现有的文件
-
-d 指定解压到的文件夹
-
-q 不显示解压过程信息
-
-v 显示解压过程或版本信息
示例:$ unzip -f dir.zip
Archive: dir.zip
.bz2格式的压缩
bzip2只能压缩文件,不能压缩目录。
语法:
bzip2 [-zdfv] 要压缩的文件名
选项与参数:
-
-z 强制执行压缩
-
-d 解压.bz2文件
-
-f 压缩时覆盖同名文件
-
-v 显示压缩过程或版本信息
示例:$ bzip2 -v tar1.tar
tar1.tar: 3.188:1, 2.509 bits/byte, 68.63% saved, 30720 in, 9636 out.
.bz2格式的解压
语法:
bunzip2 [-fkLsvV] 要解压的.bz2文件
选项与参数:
-
-f 解压缩时,若要覆盖同名文件,需添加该选项
-
-k 解压时保留原压缩文件
-
-v 显示解压过程或版本信息
示例:$ bunzip2 -kv tar1.tar.bz2
tar1.tar.bz2: done
tar命令的压缩
采用gzip进行压缩:
tar -zcvf .tar.gz 压缩包名 一系列文件或目录
示例:$ tar -zcvf compress1.tar.gz dir longfile.txt
dir/
dir/file.txt
dir/dir/
dir/longfile.txt
longfile.txt
采用bzip2进行压缩:
tar -jcvf .tar.bz2 压缩包名 一系列文件或目录
示例:$ tar -jcvf compress2.tar.bz2 dir longfile.txt
dir/
dir/file.txt
dir/dir/
dir/longfile.txt
longfile.txt
tar命令的解压
选项与参数:
-
-C 解压到指定的文件夹
解压.tar.gz压缩包:
tar -zxvf .tar.gz压缩包名
示例:$ tar -zxvf compress1.tar.gz
dir/
dir/file.txt
dir/dir/
dir/longfile.txt
longfile.txt
解压.tar.bz2压缩包:
tar -jxvf .tar.bz2压缩包名
示例:$ tar -jxvf compress2.tar.bz2
dir/
dir/file.txt
dir/dir/
dir/longfile.txt
longfile.txt
实验任务
只保留本实验工作目录下的dir、file.txt和longfile.txt,删除其他内容。
rm + 文件名 一个一个删了就行了
任务一
将dir压缩为compress1.zip(10分),将file.txt压缩为compress2.tar.gz(20分),将longfile.txt压缩为compress3.tar.bz2(20分)。
zip -v compress1.zip dir
tar -zxcf compress2.tar.gz dir file.txt
tar -jxcf compress3.tar.bz2 dir longfile.txt
任务二
新建文件夹decompress,依次将任务一中的compress1.zip(10分)、compress2.tar.gz(20分)、compress3.tar.bz2(20分)解压到该文件夹下。
unzip -d decompress compress1.zip
tar -zxcf compress2.tar.gz -C decompress
tar -jxcf compress3.tar.bz2 -C decompress
2021/10/26 做了两个linux实验