如何创建一个没有整个目录结构的zip文件
问题描述:
我想创建一个zip文件,并且希望保留大部分的目录结构,但不是从命令行定义的rootdir。我使用的命令是:如何创建一个没有整个目录结构的zip文件
zip -r out.zip /foo/bar/
我想它经过巴和递归添加的所有文件保存与目录结构(它)。但是我不希望'foo'成为创建的zip文件中的顶级目录。我希望酒吧成为顶级目录。
有没有简单的方法可以解决这个问题?我知道我可以在压缩之前更改目录以避免出现问题,但我正在寻找一种不需要此功能的解决方案。
答
我不相信zip有办法排除顶级目录。我认为你最好的选择是做如下事情: pushd/foo; zip -r out.zip ./bar; POPD;
但是,这正是你说你不想要的答案。
答
如果有人绊倒在此,它并不满足于上述方案,这里有个很简单的解决方法不压缩长子目录。它包括暂时用C创建一个文件夹:/,并荏苒简单地删除之后:
ZipFiles <- list.files(".../ZipFiles") # Insert your long subdirectory into .../
dir.create("C:/ZipFiles")
dir.create(".../FolderToBeZipped")
file.copy(from = ZipFiles,to = "C:/ZipFiles")
zip(".../FolderToBeZipped",
files = "C:/ZipFiles")
unlink("C:/ZipFiles",recursive = TRUE)
结果则.../FolderToBeZipped.zip/ZipFiles/
的好处是,你不必在执行代码时位于子目录(或项目)内。
我怀疑'tar -C/foo/bar -c out.tar *'让他更开心。 – 2012-03-14 21:39:54
我第二个这个。我在Mac上,需要zip而不是tar.gz. pushd似乎是一个非常好的选择。 – slott 2013-04-14 20:41:56