ジャコ Lab

プログラミング関連のメモ帳的ブログです

Tips: Ubuntu で zip 解凍時にディレクトリに出力する

zip の作成方法にもよりますが、ディレクトリを zip にしてくれている場合は問題ないですが、時々、zip を解凍したときにカレントディレクトリにファイルがたくさん展開されて困った経験はありませんか?

例えば、プロジェクトルート内で解凍してしまい、
xxxxx/*.pngディレクトリにまとまってくれれば良いですが、*.png がズラーっとなってしまうケースです。

初めから images/ ディレクトリを切って、その中で解凍しろ。って話でもありますが・・・

失敗ケース

$ unzip zundamon.zip 
Archive:  zundamon.zip
  inflating: zundamon (1).png        
  inflating: zundamon (10).png       
  inflating: zundamon (11).png       
  inflating: zundamon (12).png       
  inflating: zundamon (2).png        
  inflating: zundamon (3).png        
  inflating: zundamon (4).png        
  inflating: zundamon (5).png        
  inflating: zundamon (6).png        
  inflating: zundamon (7).png        
  inflating: zundamon (8).png        
  inflating: zundamon (9).png      

$ find . -name "*.png"
./zundamon (6).png
./zundamon (4).png
./zundamon (10).png
./zundamon (2).png
./zundamon (5).png
./zundamon (8).png
./zundamon (9).png
./zundamon (3).png
./zundamon (1).png
./zundamon (7).png
./zundamon (12).png
./zundamon (11).png
このようになってしまうケースですね

-d オプションを使用します

unzip zundamon.zip -d <出力先ディレクトリ>

出力先のディレクトリがない場合は勝手に作ってくれます

実行例

$ unzip zundamon.zip -d datasets
Archive:  zundamon.zip
  inflating: datasets/zundamon (1).png  
  inflating: datasets/zundamon (10).png  
  inflating: datasets/zundamon (11).png  
  inflating: datasets/zundamon (12).png  
  inflating: datasets/zundamon (2).png  
  inflating: datasets/zundamon (3).png  
  inflating: datasets/zundamon (4).png  
  inflating: datasets/zundamon (5).png  
  inflating: datasets/zundamon (6).png  
  inflating: datasets/zundamon (7).png  
  inflating: datasets/zundamon (8).png  
  inflating: datasets/zundamon (9).png  

$ find . -name "*.png"
./datasets/zundamon (6).png
./datasets/zundamon (4).png
./datasets/zundamon (10).png
./datasets/zundamon (2).png
./datasets/zundamon (5).png
./datasets/zundamon (8).png
./datasets/zundamon (9).png
./datasets/zundamon (3).png
./datasets/zundamon (1).png
./datasets/zundamon (7).png
./datasets/zundamon (12).png
./datasets/zundamon (11).png
datasets/内に解凍してくれました

まとめ

まぁディレクトリごと zip になっている場合は、datasets/dir/*.pngってなってしまって一階層増えるんですけどね🙃