麦克斯仇
Think different
159
文章
29502
阅读
首页
INDEX
文章
ARTICLE
关于
ABOUT
Linux系统的压缩与解压命令
创建日期:
2020/08/01
修改日期:
2022/11/15
Linux
### 命令与对应格式 命令 | 对应文件格式 ---|--- tar | .tar .tar.gz .tar.bz2 zip unzip | .zip gzip gunzip | .gz bzip2 bunzip2 | .bz2 ### 命令详解 #### tar > 官方文档:在Linux中输入`tar --help` ##### 命令格式 ```bash tar [选项...] [FILE]... ``` ##### 常用参数 参数 | 说明 ---|--- -t, --list | 列出打包文件中的内容 -f, --file=ARCHIVE | 指定归档包(既可以指定要处理的归档文件,又可以指定打包后的文件名) -c, --create | 打包(仅打包成一个文件,不会进行压缩) -x, --extract, --get | 解压 -C, --directory=DIR | 解压至指定目录 -v, --verbose | 打包或解压时显示过程(详细列出处理的文件) -z, --gzip, --gunzip, --ungzip | 使用 gzip 压缩或解压缩 -j, --bzip2 | 使用 bzip2 压缩或解压缩(需要提前安装bzip2依赖 `yum -y install bzip2`) ##### 示例 ```bash # -t 列出一个归档包的内容 -f 指定归档包 tar -t -f test.tar # 一般参数可以连写,以下示例均使用连写(连写时,-f 一定放在最后) tar -tf test.tar # -c 打包一个目录(包含目录内的全部文件)或一个文件 tar -cf test.tar testDir tar -cf test.tar testFile.txt # -c 打包多个文件或目录 tar -cf test.tar testDir testFile.txt # -x 解压 tar -xf test.tar # -C 解压至指定路径,该路径必须已存在,文件会解压至该文件夹下 tar -xf test.tar -C path # -v 显示过程(会输出处理的文件) tar -cvf test.tar testDir tar -xvf test.tar # -z 使用 gzip 压缩 tar -zcf test.tar.gz testDir testFile.txt # -z 使用 gzip 解压 tar -zxf test.tar.gz # -j 使用 bzip2 压缩或解压缩 tar -jcf test.tar.bz2 testFile.txt tar -jxf test.tar.bz2 ``` #### zip unzip ##### 安装 ```bash yum -y install zip yum -y install unzip ``` ##### 命令格式 > 官方文档:在Linux中输入`zip`,`unzip` ```bash zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list] unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir] ``` ##### 示例 ```bash # zip 压缩一个文件夹(不包含文件中的内容) testDir ,压缩后的文件名为 test.zip zip test.zip testDir # zip 压缩多个文件和文件夹(不包含文件中的内容),压缩后的文件名为 test.zip zip test.zip testDir testFile.txt # zip -r 递归压缩(即包含文件夹中的子文件夹和文件) zip -r test.zip testDir zip -r test.zip testDir testFile.txt # unzip 解压 unzip test.zip # unzip -d 解压至指定路径(若该路径不存在,则会自动创建) unzip test.zip -d path ``` #### gzip gunzip > gzip 命令只支持压缩文件,不支持压缩文件夹 ##### 命令格式 > 官方文档:在Linux中输入`gzip -h`,`gunzip -h` ```bash gzip [OPTION]... [FILE]... ``` ##### 示例 ```bash # 压缩一个文件,压缩后源文件消失,并自动生成压缩文件 gzip testFile.txt # 压缩到指定文件并保留源文件 gzip -c testFile.txt > test.gz # 递归压缩,每个文件都会生成一个压缩文件 gzip -r testDir # 解压 gzip -d test.gz gunzip test.gz # 也可以解压 .tar.gz ,解压出来是一个 .tar文件 gzip -d test.tar.gz gunzip test.tar.gz ``` #### bzip2 bunzip2 > bzip2 命令只支持压缩文件,不支持压缩文件夹 ##### 安装 ```bash yum -y install bzip2 ``` ##### 命令格式 > 官方文档:在Linux中输入`bzip2 --help`,`bunzip2 --help` ```bash bzip2 [flags and input files in any order] ``` ##### 示例 ```bash # 压缩一个文件,压缩后源文件消失 bzip2 testFile.txt # 压缩并保留源文件 bzip2 -k testFile.txt # 解压 bzip2 -d testFile.txt.bz2 bunzip2 testFile.txt.bz2 # 解压并保留源文件 bzip2 -d -k testFile.txt.bz2 bunzip2 -k testFile.txt.bz2 # 也可以解压 .tar.bz2 ,解压出来是一个 .tar 文件 bzip2 -d -k test.tar.bz2 bunzip2 -k test.tar.bz2 ``` ### 补充:批量解压 > 仅测试过第一条,基本够用了 ```bash for tar in *.tar.gz; do tar xvf $tar; done for tar in *.tar.bz2; do tar xvf $tar; done ls *.tar.gz | xargs -n1 tar xzvf find -maxdepth 1 -name "*.bz2"|xargs -i tar xvjf {} for i in $(ls *.tar);do tar xvf $i;done ```
2
全部评论