LoginSignup
15
10

More than 5 years have passed since last update.

解凍した時にディレクトリができないようにzipで圧縮する方法

Last updated at Posted at 2018-02-14

解凍した時にディレクトリができないようにzipで圧縮する方法を知らなかったのでメモ。
何を行っているかというと、次のように圧縮したい対象ディレクトリdirectoryがあったとする。

$ tree directory           
directory
├── file1.txt
└── file2.txt

0 directories, 2 files

これをzip -r directory.zip directoryで圧縮すると解凍した時にdirectoryが出てくる。
そうではなくて、解凍した時に中身のファイルをそのまま出力して欲しい場合は、次のようにjオプションをつければ良い。

$ zip -rj directory.zip directory 
  adding: file2.txt (stored 0%)
  adding: file1.txt (stored 0%)
$ ls
directory  directory.zip

追記(2017/2/17)
ただし、-jは深い階層の場合、ファイルのみがフラットにzipされるみたい。(ご指摘ありがとうございました。)
この場合一番上のディレクトリのみ除外したい場合は、以下のようにするしかないかもしれない。

cd directory
zip -r directory.zip *

この記事はディレクトリの外からzipすると一番上のディレクトリも一緒にzipされちゃうから気をつけようねという戒めぐらいに思ってもらいたい。

補足

-jオプションはjunkから来ていて、ディレクトリ名を捨てる(junk)するということみたい。

$ zip -h
(略)
-j   junk (don't record) directory names
(略)
15
10
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
10