Zip
壓縮包含 zip 文件的文件夾(在 MacOS 上不可見,除非通過 CLI 解壓縮)
我正在嘗試創建一個包含 5 個 PDF 和一個附加 ZIP 文件(位於目前工作文件夾上方的文件夾中)的 ZIP 存檔。這似乎有效,但僅在一定程度上有效。
例如:
$ ls -lh total 5.0M -rw-r--r-- 1 root root 227K Apr 8 18:53 activity.pdf -rw-r--r-- 1 root root 2.2M Apr 8 18:53 activity1.pdf -rw-r--r-- 1 root root 279K Apr 8 18:53 activity2.pdf -rw-r--r-- 1 root root 761K Apr 8 18:53 activity3.pdf -rw-r--r-- 1 root root 1.6M Apr 8 18:53 activity4.pdf $ ls -lh .. total 11M -rw-r--r-- 1 root root 11M Apr 5 12:16 Another_Archive.zip
要壓縮前一個文件夾中存在的 5 個 PDF 文件和ZIP,我正在執行以下操作:
$ zip Final_Archive.zip *.pdf ../Another_Archive.zip adding: activity.pdf (deflated 12%) adding: activity1.pdf (deflated 10%) adding: activity2.pdf (deflated 11%) adding: activity3.pdf (deflated 9%) adding: activity4.pdf (deflated 11%) adding: ../Another_Archive.zip (stored 0%)
現在,每當我
unzip
從 CLI 執行時,我都可以正確看到所有內容:$ unzip Final_Archive.zip Archive: Final_Archive.zip inflating: activity.pdf inflating: activity1.pdf inflating: activity2.pdf inflating: activity3.pdf inflating: activity4.pdf warning: skipped "../" path component(s) in ../Another_Archive.zip extracting: Another_Archive.zip $ ls -lh total 31M -rw-r--r-- 1 root root 11M Apr 5 12:16 Another_Archive.zip -rw-r--r-- 1 root root 15M Apr 8 19:02 Final_Archive.zip -rw-r--r-- 1 root root 227K Apr 8 18:53 activity.pdf -rw-r--r-- 1 root root 2.2M Apr 8 18:53 activity1.pdf -rw-r--r-- 1 root root 279K Apr 8 18:53 activity2.pdf -rw-r--r-- 1 root root 761K Apr 8 18:53 activity3.pdf -rw-r--r-- 1 root root 1.6M Apr 8 18:53 activity4.pdf
但是,如果我從 Mac OS 解壓縮文件(只需點兩下 zip 文件),它會提取除文件之外的所有內容
Another_Archive.zip
。見下文:如果我從 CLI 的 MacOS 解壓縮它,它工作得非常好。這是由於 MacOS 上的取消歸檔過程存在某種問題,還是由於創建 zip 文件的方式存在問題?
我想 Finder 拒絕將文件從您正在使用的文件夾中提取到父文件夾中,因為這不符合使用者的期望並且可能很危險(破壞您認為安全的文件。)
所以不要在 zip 文件中包含父文件夾的路徑。
您可以在與 PDF 相同的文件夾中創建指向 zip 的符號連結:
ln -s ../Another_Archive.zip . zip Final_Archive.zip *.pdf Another_Archive.zip
或者,您可以將 PDF 打包到 zip 中,然後將存檔添加到其中。
zip Final_Archive.zip *.pdf cd .. zip directory/Final_Archive.zip Another_Archive.zip
或者,如果您
zip
有-j
選項(“垃圾(不記錄)目錄名稱”),這將導致它儲存沒有目錄路徑的文件。zip -j Final_Archive.zip *.pdf ../Another_Archive.zip