我想創建一個zip文件,並且希望保留大部分的目錄結構,但不是從命令行定義的rootdir。我使用的命令是:如何創建一個沒有整個目錄結構的zip文件
zip -r out.zip /foo/bar/
我想它經過巴和遞歸添加的所有文件保存與目錄結構(它)。但是我不希望'foo'成爲創建的zip文件中的頂級目錄。我希望酒吧成爲頂級目錄。
有沒有簡單的方法可以解決這個問題?我知道我可以在壓縮之前更改目錄以避免出現問題,但我正在尋找一種不需要此功能的解決方案。
我想創建一個zip文件,並且希望保留大部分的目錄結構,但不是從命令行定義的rootdir。我使用的命令是:如何創建一個沒有整個目錄結構的zip文件
zip -r out.zip /foo/bar/
我想它經過巴和遞歸添加的所有文件保存與目錄結構(它)。但是我不希望'foo'成爲創建的zip文件中的頂級目錄。我希望酒吧成爲頂級目錄。
有沒有簡單的方法可以解決這個問題?我知道我可以在壓縮之前更改目錄以避免出現問題,但我正在尋找一種不需要此功能的解決方案。
我不相信zip有辦法排除頂級目錄。我認爲你最好的選擇是做如下事情: pushd/foo; zip -r out.zip ./bar; POPD;
但是,這正是你說你不想要的答案。
7z a -tzip out.zip -w foo/bar/.
如果有人絆倒在此,它並不滿足於上述方案,這裏有個很簡單的解決方法不壓縮長子目錄。它包括暫時用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