24 lines
884 B
Fish
Executable File
24 lines
884 B
Fish
Executable File
#!/usr/bin/env fish
|
||
# 把之前定义的 zp 函数内容贴进来,去掉外层的 function/end
|
||
set -l arg_count (count $argv)
|
||
|
||
# 检查是否有输入参数
|
||
if test $arg_count -eq 0
|
||
echo "用法: zp <文件或目录1> [文件或目录2] ..."
|
||
return 1
|
||
end
|
||
|
||
if test $arg_count -eq 1
|
||
# 逻辑 A:单个参数,保持原样生成同名 zip
|
||
set -l name (string trim -r -c / $argv[1])
|
||
set -l target "$name.zip"
|
||
echo "🚀 正在多线程压缩单项目: $target"
|
||
7z a -sni -snh -tzip -mmt=on -mx=5 "$target" "$argv[1]"
|
||
else
|
||
# 逻辑 B:多个参数,生成 package_20251219_1540.zip
|
||
set -l timestamp (date "+%Y%m%d_%H%M%S")
|
||
set -l target "package_$timestamp.zip"
|
||
echo "🚀 正在将 $arg_count 个项目打包至: $target"
|
||
# 直接传入 $argv,7z 会自动处理多个路径
|
||
7z a -sni -snh -tzip -mmt=on -mx=5 "$target" $argv
|
||
end |