unzipのオプション
unzipのオプションを調べる際、オプションが多すぎるので覚えておけば良さそうなものだけ列挙
zip中に含まれている一覧を見る(-l)
$ unzip -l a.zip Archive: a.zip Length Date Time Name -------- ---- ---- ---- 0 01-03-09 14:08 a/ 0 01-03-09 14:08 a/d.t 0 01-03-09 14:08 a/c.t 0 01-03-09 14:08 a/a/ 0 01-03-09 14:08 a/a/e.t 0 01-03-09 14:08 a/a/g.t 0 01-03-09 14:08 a/a/f.t 0 01-03-09 14:08 a/b/ 0 01-03-09 14:08 a/b/h.t -------- ------- 0 9 files
zip中のディレクトリの構造を無視する(-j)
$ unzip -j a.zip Archive: a.zip extracting: d.t extracting: c.t extracting: e.t extracting: g.t extracting: f.t extracting: h.t $ ls a.zip c.t d.t e.t f.t g.t h.t
展開先のディレクトリを指定する(-d)
ディレクトリは存在しなかったら作られる
$ ls a.zip $ unzip a.zip -d foo Archive: a.zip creating: foo/a/ extracting: foo/a/d.t extracting: foo/a/c.t creating: foo/a/a/ extracting: foo/a/a/e.t extracting: foo/a/a/g.t extracting: foo/a/a/f.t creating: foo/a/b/ extracting: foo/a/b/h.t $ ls a.zip foo
静かにする(-q)
まあそのとおりなんだよな。
同名のファイルが存在するとき上書きする(-o)
通常ならどうするか以下のように聞いてくる
$ :> d.t $ unzip -j a.zip Archive: a.zip replace d.t? [y]es, [n]o, [A]ll, [N]one, [r]ename:
ここでoオプションを使うと強制上書きする
$ echo aa > d.t $ cat d.t aa $ unzip -jo a.zip Archive: a.zip extracting: d.t extracting: c.t extracting: e.t extracting: g.t extracting: f.t extracting: h.t $ cat d.t $
(おまけ)実験ファイルを作り方
とりあえずmkdirと:コマンドで適当な実験ファイルを作る
$ mkdir -p a/a a/b ;:>a/c.t :>a/d.t :>a/a/e.t :>a/a/f.t :>a/a/g.t :>a/b/h.t $ zip -qr a.zip a $ rm -r a $ ls a.zip
こうすることで以下のディレクトリ構造とファイルを持ったa.zipがカレントディレクトリに出来上がる。
$ tree a a |-- a | |-- e.t | |-- f.t | `-- g.t |-- b | `-- h.t |-- c.t `-- d.t 2 directories, 6 files