ディレクトリ内の大量のディレクトリを、ディレクトリごとに連続で圧縮したかったのでその用途に見合ったコマンドを検索したら、全然ヒットしないので絶望した。
というわけで色々検討した結果以下のコマンドを実行することにしたのでメモ。
find . -type d -exec zip -rj0 {}.zip {} \; -exec rmdir {} \;
- find . -type d
- -type fだとカレントディレクトリ内のファイル、-type dだとカレントディレクトリ内のサブディレクトリを指定するオプションになる。今回はこれですべてのサブディレクトリを指定。
- -exec 〜 \;
- ;〜の部分にfindで取得したファイル名を{}として送ることができる。
- zip -rj0
- まぁ-rjだけでもいいけど。rがディレクトリ圧縮のオプション。0が無圧縮モード指定
- rmdir {}
- ついでに余ったディレクトリを削除。残したいときはこれはいらない。