在 CentOS 下“批量提取”通常是指批量解压各种压缩包(tar.gz / zip / rar / 7z 等)。下面按常见场景给你一套实用方法。
for f in *.tar*; do
tar -xf "$f"
done
for f in *.tar*; do
d="${f%.*}"
mkdir -p "$d"
tar -xf "$f" -C "$d"
done
yum install -y unzip
for z in *.zip; do
unzip "$z" -d "${z%.zip}"
done
yum install -y epel-release
yum install -y unrar
for r in *.rar; do
unrar x "$r" "${r%.rar}/"
done
yum install -y p7zip
for s in *.7z; do
7z x "$s" -o"${s%.7z}"
done
for f in *; do
case "$f" in
*.tar*|*.tgz) tar -xf "$f" -C "${f%.tar*}" ;;
*.zip) unzip "$f" -d "${f%.zip}" ;;
*.rar) unrar x "$f" "${f%.rar}/" ;;
*.7z) 7z x "$f" -o"${f%.7z}" ;;
esac
done
find . -type f \( -name "*.tar*" -o -name "*.zip" -o -name "*.rar" -o -name "*.7z" \) -exec sh -c '
f="$1"
d="${f%.*}"
mkdir -p "$d"
case "$f" in
*.tar*) tar -xf "$f" -C "$d" ;;
*.zip) unzip "$f" -d "$d" ;;
*.rar) unrar x "$f" "$d/" ;;
*.7z) 7z x "$f" -o"$d" ;;
esac
' _ {} \;
"$f"unzip -O GBK file.zipsudo如果你说的 “extract”不是解压,而是:
awk / sed / grep 批量提取告诉我具体场景,我可以直接给你命令。