Last active
October 21, 2024 19:25
-
-
Save jamesktan/5977349562e6f6cab9ea to your computer and use it in GitHub Desktop.
Unzipping & Zipping ePub from Command Line
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// To unzip the epub, move the ePub to a folder, cd to it then simply: | |
unzip MyEbook.epub | |
// To zip up an epub: | |
1. zip -X MyNewEbook.epub mimetype | |
2. zip -rg MyNewEbook.epub META-INF -x \*.DS_Store | |
3. zip -rg MyNewEbook.epub OEBPS -x \*.DS_Store | |
Some explanations necessary here. We start each line with two flags: | |
-r (recursive) | |
This means move down through any directories/folders recursively, ensuring that everything in the folders specified gets included | |
-g (grow file) | |
great phoenixeliot but I had to remove the last part -x *.Ds_Store
because zsh: no matches found: *.DS_Store
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Found some even more concise versions from the Ebooks StackExchange: https://ebooks.stackexchange.com/questions/257/how-to-repack-an-epub-file-from-command-line/7278#7278?newreg=ec07b030898d48868a88caec7809c255
Linux: (Uses the name of the current folder as the epub filename)
zip -rX "../$(basename "$(realpath .)").epub" mimetype $(ls|xargs echo|sed 's/mimetype//g')
macOS: (you should change the epub name here to whatever it should be called)
zip -rX "../myprecious.epub" mimetype $(ls|xargs echo|sed 's/mimetype//g') -x *.DS_Store
I found this version also worked better for epubs I found that don't use the OEBPS folder. I don't know if not having that folder is valid per standards, but I found examples of it being missing in the wild.