gpt4 book ai didi

bash - 解压缩 ZIP 文件并提取未知文件夹名称的内容

转载 作者:行者123 更新时间:2023-11-29 09:00:17 26 4
gpt4 key购买 nike

我的用户将压缩如下所示的文件:

TEMPLATE1.ZIP
|--------- UnknownName
|------- index.html
|------- images
|------- image1.jpg

我想解压这个 zip 文件如下:

/mysite/user_uploaded_templates/myrandomname/index.html
/mysite/user_uploaded_templates/myrandomname/images/image1.jpg

我的问题是 UnknownName - 我事先不知道它是什么,并且将所有内容提取到“基本”级别会破坏 index.html 中的所有相对路径

如何从此 ZIP 文件中提取 UnknownName 的内容

还有什么比:

1. Extract everything
2. Detect which "new subdidrectory" got created
3. mv newsubdir/* .
4. rmdir newsubdir/

如果 UnknownName 级别有多个子目录,我可以拒绝该用户的 zip 文件。

最佳答案

我认为您的方法很好。第 2 步可以改进我提取到新创建的目录(后来删除),以便“检测”变得微不足道。

# Bash (minimally tested)
tempdest=$(mktemp -d)
unzip -d "$tempdest" TEMPLATE1.ZIP
dir=("$tempdest"/*)
if (( ${#dir[@]} == 1 )) && [[ -d $dir ]]
# in Bash, etc., scalar $var is the same as ${var[0]}
mv "$dir"/* /mysite/user_uploaded_templates/myrandomname
else
echo "rejected"
fi
rm -rf "$tempdest"

关于bash - 解压缩 ZIP 文件并提取未知文件夹名称的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4301786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com