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
。以下を参照してください。
MacOS CLIで解凍すると正常に動作します。これは、MacOSのアーカイブ解除プロセスに関連する問題によるものですか、それともzipファイルの生成方法に問題がありますか?
答え1
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