Skip to content

Instantly share code, notes, and snippets.

@ted423
Last active January 24, 2026 16:10
Show Gist options
  • Select an option

  • Save ted423/eab23c28ba7753c02c1a8e18f33db7d6 to your computer and use it in GitHub Desktop.

Select an option

Save ted423/eab23c28ba7753c02c1a8e18f33db7d6 to your computer and use it in GitHub Desktop.
tarxz.sh
#!/bin/bash
# 1.2
# 中间可以加的参数 --exclude='pattern'
if [ "$#" -gt 0 ]; then
# 获取最后一个参数,参数放在前面,要打包的路径放在最后
allarg="$*"
last_arg="${!#}"
if [[ "$last_arg" == "." || "$last_arg" == ".." ]]; then
echo "请勿打包 . .. 目录,会导致产生的压缩文件被打包,造成问题"
exit 1
fi
if [ "$#" -eq 1 ]; then
para=""
target_dir=$(dirname "$1")
target=$(basename "$1")
else
target_dir=$(dirname "${!#}")
target=$(basename "${!#}")
suffix_to_remove=" $last_arg"
para="${allarg%$suffix_to_remove}"
fi
else
echo "参数放在前面,要打包的路径放在最后"
fi
#echo "para is $para"
#echo "XZ_OPT='-T 0' tar -C \"$target_dir\" $para -cvJf $target.tar.xz $target"
XZ_OPT='-T 0' tar -C "$target_dir" $para -cvJf $target.tar.xz $target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment