上一篇                     
               
			  linux如何批量解压
- Linux
- 2025-07-29
- 3566
 Linux中,可以使用以下命令批量解压当前目录下的所有.tar.gz文件:,“`bash,for file in .tar.gz; do tar -xzvf “$file”; done,
 
Linux系统中,批量解压文件是一项常见的任务,尤其是在处理大量压缩文件时,以下是几种在Linux中批量解压文件的方法,包括使用命令行工具和脚本。
使用for循环批量解压
 
解压当前目录下的所有.tar.gz文件
 
for file in .tar.gz; do tar -xzvf "$file"; done
解释:
- for file in .tar.gz:遍历当前目录下所有以- .tar.gz结尾的文件。
- tar -xzvf "$file":解压每个文件,- -x:解压。
- -z:处理gzip压缩。
- -v:显示详细信息。
- -f:指定文件。
 
解压指定目录下的所有.zip文件
 
for file in /path/to/directory/.zip; do unzip "$file" -d "${file%.zip}"; done 
解释:
- /path/to/directory/.zip:指定目录下的所有- .zip文件。
- unzip "$file" -d "${file%.zip}":解压到去掉- .zip后缀的目录。
使用find命令结合xargs批量解压
 
查找并解压所有子目录中的.tar.gz文件
 
find . -name ".tar.gz" | xargs -I {} tar -xzvf {} 
解释:
- find . -name ".tar.gz":查找当前目录及子目录中的所有- .tar.gz文件。
- xargs -I {} tar -xzvf {}:对每个找到的文件执行- tar -xzvf命令。
查找并解压所有子目录中的.zip文件
 
find . -name ".zip" | xargs -I {} unzip {} -d "{}" 
解释:
- find . -name ".zip":查找当前目录及子目录中的所有- .zip文件。
- unzip {} -d "{}":解压到与压缩文件同名的目录。
使用脚本批量解压
编写一个简单的Shell脚本来批量解压.tar.gz文件
 
#!/bin/bash
# 批量解压当前目录下的所有.tar.gz文件
for file in .tar.gz; do
    if [ -f "$file" ]; then
        echo "正在解压 $file..."
        tar -xzvf "$file"
    fi
done 
步骤:
- 将上述代码保存为batch_extract.sh。
- 赋予执行权限:chmod +x batch_extract.sh。
- 运行脚本:./batch_extract.sh。
编写一个更通用的脚本,支持多种压缩格式
#!/bin/bash
# 批量解压当前目录下的所有压缩文件
for file in ; do
    if [[ "$file" == .tar.gz ]]; then
        echo "正在解压 $file..."
        tar -xzvf "$file"
    elif [[ "$file" == .zip ]]; then
        echo "正在解压 $file..."
        unzip "$file" -d "${file%.zip}"
    elif [[ "$file" == .tar.bz2 ]]; then
        echo "正在解压 $file..."
        tar -xjvf "$file"
    fi
done 
步骤:
- 将上述代码保存为batch_extract_all.sh。
- 赋予执行权限:chmod +x batch_extract_all.sh。
- 运行脚本:./batch_extract_all.sh。
使用并行处理加速批量解压
使用GNU parallel并行解压
 
parallel tar -xzvf {} ::: .tar.gz 
解释:
- parallel:GNU Parallel工具,用于并行执行任务。
- tar -xzvf {}:解压命令。
- ::: .tar.gz:指定要处理的文件列表。
安装GNU Parallel:
sudo apt-get install parallel
使用unrar批量解压RAR文件
 
批量解压当前目录下的所有.rar文件
 
for file in .rar; do unrar x "$file"; done
解释:
- unrar x "$file":解压RAR文件,不保留路径信息。
安装unrar:
sudo apt-get install unrar
使用7z批量解压7z文件
 
批量解压当前目录下的所有.7z文件
 
for file in .7z; do 7z x "$file"; done
解释:
- 7z x "$file":解压7z文件。
安装7z:
sudo apt-get install p7zip-full
使用adb批量解压Android Backup文件
 
批量解压当前目录下的所有.ab文件
 
for file in .ab; do adb restore "$file"; done
解释:
- adb restore "$file":恢复Android备份文件。
安装ADB:
sudo apt-get install android-tools-adb
使用pax批量解压归档文件
 
方法十一:批量解压当前目录下的所有.pax文件
 
for file in .pax; do pax -r -v -f "$file" .; done
解释:

- pax -r -v -f "$file" .:解压PAX归档文件,- -r:递归解压。
- -v:显示详细信息。
- -f:指定文件。
 
安装pax:
sudo apt-get install pax
使用cpio批量解压归档文件
 
方法十二:批量解压当前目录下的所有.cpio文件
 
for file in .cpio; do cpio -id < "$file"; done
解释:
- cpio -id < "$file":解压CPIO归档文件,- -i:提取文件。
- -d:创建必要的目录结构。
 
使用rpm2cpio和cpio批量解压RPM文件
 
方法十三:批量解压当前目录下的所有.rpm文件
 
for file in .rpm; do rpm2cpio "$file" | cpio -id; done
解释:
- rpm2cpio "$file":将RPM包转换为CPIO格式。
- cpio -id:解压CPIO归档文件。
使用deb2targz和tar批量解压DEB文件
 
方法十四:批量解压当前目录下的所有.deb文件
 
for file in .deb; do deb2targz "$file" | tar -xvz; done
解释:
- deb2targz "$file":将DEB包转换为TAR.GZ格式。
- tar -xvz:解压TAR.GZ文件。
安装deb2targz:
sudo apt-get install arj deb2targz
使用jar批量解压JAR文件
 
方法十五:批量解压当前目录下的所有.jar文件
 
for file in .jar; do jar -xvf "$file"; done
解释:
- jar -xvf "$file":解压JAR文件,- -x:解压。
- -v:显示详细信息。
- -f:指定文件。
 
安装Java:
sudo apt-get install default-jdk
使用lha批量解压LHA文件
 
方法十六:批量解压当前目录下的所有.lha文件
 
for file in .lha; do lha -e "$file"; done
解释:
- lha -e "$file":解压LHA文件。
安装lhasa:
sudo apt-get install lhash
使用arc批量解压ARC文件
 
方法十七:批量解压当前目录下的所有.arc文件
 
for file in .arc; do arc -t -d "$file"; done
解释:
- arc -t -d "$file":解压ARC文件,- -t:列出文件内容。
- -d:解压。
 
安装arc:

sudo apt-get install arc
使用cabextract批量解压CAB文件
 
方法十八:批量解压当前目录下的所有.cab文件
 
for file in .cab; do cabextract "$file"; done
解释:
- cabextract "$file":解压CAB文件。
安装cabextract:
sudo apt-get install cabextract
使用rpm批量解压RPM文件(适用于系统安装)
 
方法十九:批量解压当前目录下的所有.rpm文件(系统安装)
 
for file in .rpm; do sudo rpm -ivh "$file"; done
解释:
- sudo rpm -ivh "$file":安装RPM包,- -i:安装新包。
- -v:显示详细信息。
- -h:显示进度条。
 
使用dpkg-deb批量解压DEB文件(适用于系统安装)
 
方法二十:批量解压当前目录下的所有.deb文件(系统安装)
 
for file in .deb; do sudo dpkg -i "$file"; done
解释:
- sudo dpkg -i "$file":安装DEB包。
使用p7zip批量解压7z文件(图形界面)
 
方法二十一:使用p7zip-gui批量解压7z文件
- 打开p7zip-gui。
- 选择多个7z文件。
- 点击“解压”按钮,选择目标目录。
- 点击“确定”开始批量解压。
安装p7zip-gui:
sudo apt-get install p7zip-gui
使用unrar-free批量解压RAR文件(开源替代)
 
方法二十二:使用unrar-free批量解压RAR文件
for file in .rar; do unrar-free x "$file"; done
解释:
- unrar-free x "$file":解压RAR文件。
安装unrar-free:
sudo apt-get install unrar-free
使用gzip批量解压GZ文件(仅解压,不包含归档)
 
方法二十三:批量解压当前目录下的所有.gz文件(仅解压,不包含归档)
 
for file in .gz; do gzip -d "$file"; done
解释:
- gzip -d "$file":解压GZ文件。
使用bzip2批量解压BZ2文件(仅解压,不包含归档)
 
方法二十四:批量解压当前目录下的所有.bz2文件(仅解压,不包含归档)
 
for file in .bz2; do bzip2 -d "$file"; done
解释:
- bzip2 -d "$file":解压BZ2文件。
使用xz批量解压XZ文件(仅解压,不包含归档)
 
方法二十五:批量解压当前目录下的所有.xz文件(仅解压,不包含归档)
 
for file in .xz; do xz -d "$file"; done
解释:
- xz -d "$file":解压XZ文件。
使用lzma批量解压LZMA文件(仅解压,不包含归档)
 
方法二十六:批量解压当前目录下的所有.lzma文件(仅解压,不包含归档)
 
for file in .lzma; do lzma -d "$file"; done
解释:

- lzma -d "$file":解压LZMA文件。
使用pigz批量解压GZ文件(并行处理)
 
方法二十七:使用pigz批量解压GZ文件(并行处理)
for file in .gz; do pigz -d "$file"; done
解释:
- pigz -d "$file":使用pigz并行解压GZ文件。
安装pigz:
sudo apt-get install pigz
使用pbzip2批量解压BZ2文件(并行处理)
 
方法二十八:使用pbzip2批量解压BZ2文件(并行处理)
for file in .bz2; do pbzip2 -d "$file"; done
解释:
- pbzip2 -d "$file":使用pbzip2并行解压BZ2文件。
安装pbzip2:
sudo apt-get install pbzip2
使用pxz批量解压XZ文件(并行处理)
 
方法二十九:使用pxz批量解压XZ文件(并行处理)
for file in .xz; do pxz -d "$file"; done
解释:
- pxz -d "$file":使用pxz并行解压XZ文件。
安装pxz:
sudo apt-get install pxz
使用lrzip批量解压LRZIP文件(重复数据删除压缩)
 
方法三十:批量解压当前目录下的所有.lrz文件(重复数据删除压缩)
 
for file in .lrz; do lrzip -d "$file"; done
解释:
- lrzip -d "$file":解压LRZIP文件。
安装lrzip:
sudo apt-get install lrzip
使用sharutils批量解压SH档案(shell归档)
 
方法三十一:批量解压当前目录下的所有.sh档案(shell归档)
 
for file in .sh; do sh "$file"; done
解释:
- sh "$file":执行SH档案。
安装sharutils:
 
  
			