ZIPコマンドでWordファイルが開けなくなった

zipコマンドでWordファイルとかExcelファイルとかと、他のいくつかのファイルを圧縮しようと思ったら、なぜかWordファイルがぶっ壊れて開けなくなって変な汗出てるみなさん、ようこそいらっしゃいました。まずは深呼吸して落ち着きましょう。

これからあなたがやってしまったことをズバリ当てましょう。たとえばreport.wordとtable.xlsxファイルをzipで固めてarchive.zipにしようと思っていたとして、こんなふうに指定しましたね?

% zip report.docx table.xlsx archive.zip 
	zip warning: name not matched: archive.zip
  adding: table.xlsx (deflated 29%)

すると、Wordファイルを開こうとしてもこんなエラーメッセージや、

こんなメッセージがでて、

Wordファイルが開けなくなりましたね。(エラーメッセージは日本語かもしれません)

原因はzipコマンドに指定する引数の順番が意図と異なり、report.docxというzipファイルにtable.xlsxとarchive.zipを入れろという意味になっていたからです。正しいzipコマンドの使い方は別途ググってもらうとして、まずは直し方を。macでの話ですが、Linuxでも同じことが言えると思います。

なにが起こっているかというと、実はWordのdocxファイルはzipファイルで、そのzipファイルにtable.xlsxが取り込まれた状態になっています。重要なことなので強調しておきます。Wordのdocxファイルの実態はzipファイルです。では、開けなくなってしまったreport.docxの中身をzipinfoコマンドで覗いてみましょう。

% zipinfo report.docx 
Archive:  report.docx
Zip file size: 18339 bytes, number of entries: 12
-rw----     4.5 fat     1312 b- defS 80-Jan-01 00:00 [Content_Types].xml
-rw----     4.5 fat      590 b- defS 80-Jan-01 00:00 _rels/.rels
-rw----     4.5 fat      817 b- defS 80-Jan-01 00:00 word/_rels/document.xml.rels
-rw----     4.5 fat     2924 b- defS 80-Jan-01 00:00 word/document.xml
-rw----     4.5 fat     8393 b- defS 80-Jan-01 00:00 word/theme/theme1.xml
-rw----     4.5 fat     3192 b- defS 80-Jan-01 00:00 word/settings.xml
-rw----     4.5 fat      755 b- defS 80-Jan-01 00:00 docProps/core.xml
-rw----     4.5 fat     2272 b- defS 80-Jan-01 00:00 word/fontTable.xml
-rw----     4.5 fat      894 b- defS 80-Jan-01 00:00 word/webSettings.xml
-rw----     4.5 fat    29453 b- defS 80-Jan-01 00:00 word/styles.xml
-rw----     4.5 fat      709 b- defS 80-Jan-01 00:00 docProps/app.xml
-rw-r--r--  3.0 unx     8345 bx defN 22-Oct-18 08:50 table.xlsx
12 files, 59656 bytes uncompressed, 15103 bytes compressed:  74.7%

report.docxの中にtable.xlsxファイルが取り込まれているのがわかります。この取り込まれたファイルを削除してやりましょう。zipコマンドの-dオプションでtable.xlsxファイルをアーカイブから取り除きます。なお、この操作を間違うといよいよ完全にWordファイルを壊してしまうので、事前にコピーを取っておくことをおすすめします。

% zip -d report.docx table.xlsx
deleting: table.xlsx

これで開けるようになったはずです。それではよい午後を。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*