上一篇
linux如何批量解压
- Linux
- 2025-07-29
- 4
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: