Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a (Linux) command-line tool to extract all the images from a MS Word document, (preferably one that could handle the .docx format)?

share|improve this question
Is this a linux version with a UI or Command Line Only? – Jeff F. May 23 '11 at 20:23
@Jeff - A command-line utility would be useful for large batch mode operations. – Hooked May 23 '11 at 21:29
up vote 7 down vote accepted

Since docx files are zip files you can unzip the docx file and then pick out the image files.

I have no Microsoft Office to test so I downloaded some random docx files from the internet. It seems that the images are always stored in a word/media directory in the archive.

This command will extract all files from the media directory from the archive:

unzip foo.docx "word/media/*"

This command will extract only *.jpeg files:

unzip foo.docx "*.jpeg"

Note that you have to specify "*.jpg" if the files are saved as jpg instead of jpeg. I assume that it is also possible that images are stored using a different format. I have no idea whether images can be stored in another location other than the word/media directory. You can use unzip -l to list the contents of the archive.

share|improve this answer
Well thats useful! Do you know if this holds for the older .doc formats? – Hooked May 23 '11 at 21:31
The older doc format was not zipped. It was either a monolithic XML or a binary blob. You can read more about it here. – lesmana May 23 '11 at 21:55

Saving a Word document as a web page is a technique used on Windows to extract all the images into a folder:

It might be long winded, but perhaps you could control Open Office on Linux from the command line to extract the images, possibly by converting to a web page and ending up with the images in the supporting folder it would create.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.