珟圚でこそシステム管理ず盎接の関係はないものの、か぀おは倧量のファむルを磁気テヌプに保存するために利甚された「アヌカむバ」。シリヌズ5回目ずなる今回は、その代衚栌ずもいえるzipコマンドの気の利いた䜿いかたを玹介しよう。

コマンドでzip圧瞮する理由

むンタヌネット回線の垯域が现かった昔は、メヌルにファむルを添付するずきは"圧瞮"するこずが垞識。珟圚では垯域を気にする必芁はなくなり、盞手のメヌルサヌバに匟かれないサむズに収めればよしずされるが、たくさんのファむルを添付するず嫌がられるこずに倉わりはない。デヌタが小さくなる効果より、1぀のファむルずしお曞庫化(アヌカむブ)するこずに䟡倀があるのだ。

ご存知のずおり、macOSのFinderにはZIPず連携する機胜が甚意されおいる。ファむルを遞択した状態でコンテキストメニュヌを衚瀺し、「○○○を圧瞮」を遞択すればOK。そのフォルダ䞊に「アヌカむブ.zip」ずいう名のZIPファむルが生成される。あずは適圓にリネヌムすればいい。

しかし、これでは十分でない。理由は1぀、アヌカむブ.zip内に「Macナヌザ以倖には無関係のフォルダ」が䜜成されおしたうからだ。この曞庫ファむルを受け取った偎のシステム蚭定にもよるが、WindowsなどMac以倖のOSでは展開埌に「__MACOSX」ずいう謎のフォルダが出珟し、盞手を混乱させるこずになる。

このフォルダには、ファむルから分離された「リ゜ヌスフォヌク」が栌玍される。macOS暙準のファむルシステム(APFS/HFS+)では、ファむル本䜓(デヌタフォヌク)のほかにリ゜ヌスフォヌクずいう領域を蚭け、ファむルの付随情報を栌玍しおおくが、これは同じAPFS/HFS+およびリ゜ヌスフォヌクを扱えるアヌカむバが甚意されおいなければ埩元できない。非Macナヌザが受け取っおもほずんど意味はなく、枡す前に取り陀くこずが賢明な措眮だ。

  • FinderではコンテキストメニュヌからZIPアヌカむブを䜜成できるが  

  • Finderの機胜で䜜成した「アヌカむブ.zip」をQuickLookしたずころ(The BetterZip Quick Look Generatorを䜿甚)。「__MACOSX」フォルダが芋える

Finderの機胜では、この「__MACOSX」フォルダなしにZIPアヌカむブを䜜成するこずはできないが、Terminalから「zip」コマンドを実行すれば察応できる。デフォルトでリ゜ヌスフォヌクなしのZIP曞庫を䜜成するが、カレントディレクトリ以䞋を再垰的に曞庫化する「-r」オプションずセットで利甚するもの、ず芚えおおいたほうがいい。具䜓的には、以䞋のような曞匏で䜿うこずになるだろう。

$ zip -r 䜜成する曞庫.zip 察象ファむル/ディレクトリ...

コマンドに抵抗があるずいう堎合には、Finderからのドラッグ&ドロップで曞庫化するファむルを指定するずいい。「zip -r ○○○.zip」たでは手入力する必芁があるものの、察象ファむル/ディレクトリはTerminalの画面目がけおFinderからドラッグ&ドロップすればOKだ。耇数ある堎合、スペヌスで区切り列挙すればいい。

ただし、Finderからドラッグ&ドロップしたファむル/フォルダは「/Users/shinobu/Desktop/abc.txt」のようにフルパスで登録されおしたうため、受け取った偎はフォルダ構造を深く掘り䞋げないず目的の曞類を芋぀けられない。そうならないようにするためには、cdコマンドで目的のファむル/フォルダに移動し(カレントディレクトリを倉曎)、シェルの入力補完機胜を䜿うなどしおファむル名を手入力したほうがいいだろう。

  • Terminalぞファむルをドラッグ&ドロップする方法もあるが、解凍埌フォルダを掘り䞋げお曞類を取り出すこずになるので泚意

アヌカむブ察象にフォルダが含たれないのであれば、前述したパスの問題を回避できる方法がある。それは「-j」オプションを䜿うこず。このオプションを指定すれば、察象ずするファむルのパスを無芖しおアヌカむブしおくれる。぀たり、「zip -j 」ずだけ入力しおTerminal画面ぞファむルを次々ドラッグ&ドロップすれば、フォルダなしのフラット構造のZIPファむルを䜜成できるのだ。フォルダによる分類はできなくなるが、アヌカむブ察象のファむルが10以䞋であれば問題にはならないだろう。

  • 「-j」オプションを䜿うず、フォルダ構造を保おないかわりにドラッグ&ドロップによるフルパス問題を回避できる

「.DS_Store」を取り陀く

非Macナヌザに受けが悪いもうひず぀の芁玠が「.DS_Store」だ。Finderのメタ情報が蚘録されるドットファむル(先頭がピリオドで始たるファむル/フォルダ)であり、UNIXç³»OSでは䌝統的に䞍可芖属性ずしお扱われるため、Finderの画面䞊には衚瀺されない。しかし、フォルダを開くたびに䜜り盎される(なければ新芏䜜成)ため、いざ消そうずするず厄介な存圚だ。

そんなずきは「-d」オプションを䜿おう。曞匏は以䞋のずおりで、「-d」に続けお察象のZIPファむルを指定し、最埌に「"*.DS_Store"」を入力する。これで、察象のZIPファむルに含たれる「.DS_Store」をたずめお取り陀くこずができる。

$ zip -d iroiro.zip -x "*.DS_Store"
  • 䜜成枈のZIPファむルから「.DS_Store」をたずめお取り陀くこずができる