“zip -m”如果目录变空则不删除目录

时间:2012-06-28 16:39:26

标签: linux bash shell zip

我需要将目录的内容移动到存档中,我很高兴地发现“-m”选项就是这样做的。 (当然,我正在使用“-T”选项。:))

但遗憾的是,如果目录变为zip操作之后,则删除目录本身。我不希望发生这种情况,但找不到任何类似的选项。

你们有什么想法我怎么能得到这种行为?

这是我在shell脚本中使用的实际(混淆)命令:

zip -qrTmy $archive_name $files_dir

1 个答案:

答案 0 :(得分:1)

除非您的目录包含子目录,否则在压缩/移动后重新创建它并不困难:

zip -qrTmy $archive_name $files_dir
mkdir $files_dir

如果目录包含子目录,那么我们需要将该目录结构复制到临时名称,执行zip / move,重新命名结构。我还在研究如何实现这个想法。如果我知道解决方案,我会更新这篇文章。

更新

如果目录包含子目录:

find $files_dir -type d -exec mkdir temp_{} \; # Duplicate the dir structure
zip -qrTmy $archive_name $files_dir
mv temp_$files_dir $files_dir                  # Restore the dir structure