你提到的 “centos extract” 一般指 CentOS 上批量解压(extract)文件,常见场景是:
一个目录里有大量
.tar.gz/.zip/.tar.xz等压缩包,想批量解压到各自目录或统一目录。
下面按常见需求给你几种批量配置/批量解压方法。
.tar.gz 文件for f in *.tar.gz; do
tar -xzf "$f"
done
for f in *.tar.gz; do
dir="${f%.tar.gz}"
mkdir -p "$dir"
tar -xzf "$f" -C "$dir"
done
.zip 文件yum install -y unzip
for f in *.zip; do
unzip "$f" -d "${f%.zip}"
done
for f in *; do
case "$f" in
*.tar.gz)
tar -xzf "$f"
;;
*.tgz)
tar -xzf "$f"
;;
*.tar.xz)
tar -xJf "$f"
;;
*.zip)
unzip "$f" -d "${f%.zip}"
;;
esac
done
find 批量解压(递归子目录)find . -name "*.tar.gz" -exec tar -xzf {} \;
或解压到各自目录:
find . -name "*.tar.gz" | while read f; do
dir=$(dirname "$f")/$(basename "$f" .tar.gz)
mkdir -p "$dir"
tar -xzf "$f" -C "$dir"
done
batch_extract.sh
#!/bin/bash
for f in "$@"; do
case "$f" in
*.tar.gz|*.tgz) tar -xzf "$f" ;;
*.tar.xz) tar -xJf "$f" ;;
*.zip) unzip "$f" -d "${f%.zip}" ;;
*) echo "不支持: $f" ;;
esac
done
使用:
chmod +x batch_extract.sh
./batch_extract.sh *.tar.gz *.zip
(如系统安装镜像中的 extract 命令)
请补充说明:
我可以直接给你对应批量配置方案。
如果你能告诉我:
✅ 文件类型
✅ 是否递归
✅ 解压到哪
我可以直接帮你写一条命令或脚本。