将下面的代码保存成untar.sh,
#!/bin/bash
# 检查是否传入了文件名
if [ -z "$1" ]; then
echo "Usage: $0 <filename>"
exit 1
fi
FILENAME="$1"
EXTENSION="${FILENAME##*.}" # 获取文件后缀
# 检查是否安装了多线程工具
check_command() {
if command -v "$1" >/dev/null 2>&1; then
return 0 # 已安装
else
return 1 # 未安装
fi
}
# 根据文件后缀选择解压方法
case "$EXTENSION" in
gz)
if check_command "pigz"; then
tar -I pigz -xf "$FILENAME"
else
tar -xzf "$FILENAME"
fi
;;
bz2)
if check_command "pbzip2"; then
tar -I pbzip2 -xf "$FILENAME"
else
tar -xjf "$FILENAME"
fi
;;
xz)
if check_command "pxz"; then
tar -I pxz -xf "$FILENAME"
else
tar -xJf "$FILENAME"
fi
;;
tar)
tar -xf "$FILENAME"
;;
zip)
unzip "$FILENAME"
;;
rar)
tar -zxf "$FILENAME"
;;
tgz)
tar -zxf "$FILENAME"
;;
*)
echo "Unsupported file extension: .$EXTENSION"
exit 1
;;
esac
# 检查是否解压成功
if [ $? -eq 0 ]; then
echo "Extraction completed successfully."
else
echo "Extraction failed."
exit 1
fi
然后保存到快捷命令
ln -s /opt/untar.sh /usr/local/bin/untar
使用方法:
untar test.tar.gz
untar test.tgz
untar test.bz2
untar test.xz