ファイル名順にソートしてzipファイルを作成する
自炊した書籍をzipで作成する際、普通に圧縮すると変な順番で格納されてしまう。 実用上ほとんど問題はないのだが、なんとなくファイル名順に格納したかったので、そのやり方をメモ。
ls -1 ディレクトリ名 | zip -@rjDo0 圧縮ファイル名.zip
やっていることは
- lsに
-1
オプションをつけてファイル1行ずつでファイル名を出力(デフォルトでは文字コード順) - zipに
-@
オプションをつけ、標準入力にファイル名を渡して圧縮(残りのオプションはお好みで)
findを使って行うときは、もう少し工夫が必要で、以下のように
findの-print0
オプションとsortの-z
オプション、xargsの-0
オプションでNull文字区切りでファイル名を出力→ソート→圧縮とする。
find ./ -type f -print0 | sort -z | xargs -0 zip -@rjDo0 圧縮ファイル名.zip
なんとなくAndroidのPerfectViewerで見るときに表示が早くなったような気がする。たぶんプラシーボだけれど。