Featured image of post unzipコマンドで出力先を指定して解凍する方法【-d】

unzipコマンドで出力先を指定して解凍する方法【-d】

unzipコマンドで解凍先のディレクトリを指定するには -d オプションを使います。何も付けないとカレントディレクトリに展開されて上書き事故のもとになるので、覚えておきたい小技です♪

547文字

忘れがちなのでメモメモ

GUIでなくCUI操作をベースに作業をしている場合、ダウンロードしたZIPファイル任意のディレクトリに解凍したいというケースがよくあるのですが、その際になんのオプションをつければ良いのか忘れがちなので備忘録としてメモします。

そのまま実行すると、カレントディレクトリに展開されてしまうので、間違えて実行してファイルが上書きされてしまう!!なんて恐ろしい事故が起こる可能性があります。

gitなどで管理していないファイルだと思ったらゾッとしますよね。。。orz

コマンド

展開先を指定するには、-dオプションを使う事で指定する事が可能です。

d=ディレクトリと考えれば覚えやすいのではないでしょうか♪

試しにDownloadsディレクトリ直下のSpringBootのサンプルzipを任意のディレクトリに解凍してみました。

unzip blogenistSample.zip -d ~/tmp/work/java/springBoot/2.1.0/java
Archive:  blogenistSample.zip
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/gradlew
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/gradle/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/gradle/wrapper/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/java/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/java/jp/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/java/jp/blogenist/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/java/jp/blogenist/sample/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/resources/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/resources/static/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/resources/templates/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/test/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/test/java/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/test/java/jp/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/test/java/jp/blogenist/
   creating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/test/java/jp/blogenist/sample/
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/.gitignore
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/build.gradle
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/gradle/wrapper/gradle-wrapper.jar
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/gradle/wrapper/gradle-wrapper.properties
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/gradlew.bat
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/settings.gradle
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/java/jp/blogenist/sample/SampleApplication.java
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/main/resources/application.properties
  inflating: /Users/blogenist/tmp/work/java/springBoot/2.1.0/java/sample/src/test/java/jp/blogenist/sample/SampleApplicationTests.java

正しく-dオプションで指定した先に解凍されていますね。

tree .
.
└── sample
    ├── build.gradle
    ├── gradle
    │   └── wrapper
    │       ├── gradle-wrapper.jar
    │       └── gradle-wrapper.properties
    ├── gradlew
    ├── gradlew.bat
    ├── settings.gradle
    └── src
        ├── main
        │   ├── java
        │   │   └── jp
        │   │       └── blogenist
        │   │           └── sample
        │   │               └── SampleApplication.java
        │   └── resources
        │       ├── application.properties
        │       ├── static
        │       └── templates
        └── test
            └── java
                └── jp
                    └── blogenist
                        └── sample
                            └── SampleApplicationTests.java

終わりに

サクッと使えて便利なコマンドなので、CUI使いの方はぜひ覚えておくと良いでしょう♪