批量压缩目录时如何避免zip归档包含完整路径结构?
解决zip归档包含完整路径的问题
你当前用绝对路径执行压缩,导致归档里包含了完整的目录层级,解压时会生成冗长的路径。要让解压后直接得到和原目录一致的结构,可以修改命令如下:
for dir in ~/user/profiles/data/*/; do pushd "$(dirname "$dir")" || continue zip -r "$(basename "$dir").zip" "$(basename "$dir")" popd done
核心说明:
*/限定只遍历目标路径下的子目录,避免误处理普通文件pushd临时切换到目标目录的父目录,此时用相对路径压缩,归档里只会保留目标目录本身及其内部的文件结构popd回到原工作目录,不会影响后续操作
执行这个命令后,directory_1.zip里的结构就是directory_1/text.txt,解压后会直接生成directory_1目录,里面的文件结构和原目录完全一致。
内容的提问来源于stack exchange,提问作者user971741
相关产品推荐
相关产品推荐

