web-dev-qa-db-ja.com

zipアーカイブから特定のフォルダーのみを特定のディレクトリに抽出する方法は?

Zipアーカイブから特定のフォルダーを特定のディレクトリに抽出するにはどうすればよいですか?

使ってみた

unzip "/path/to/archive.Zip" "in/archive/folder/" -d "/path/to/unzip/to"

しかし、それは私が解凍したいパスにフォルダを作成するだけで、他には何もしません。

66
Enkouyami
unzip <target-Zip-file> '<folder-to-extract/*>' -d <destination-path> 

eL 6で正常に動作します

70
sue

試してください:

unzip /path/to/archive.Zip 'in/archive/folder/*' -d /path/to/unzip/to
41
Mark Adler

既存の2つの答えはどちらも正しいですが、ターゲットディレクトリを指定するのは少し難しいので、より明確にする必要があります。

/target/root/が元の解凍アクションのターゲットディレクトリであるとしましょう。例:

unzip -qq src.Zip -d "/target/root/"

次に、特定のサブディレクトリのみを抽出する場合でも、後で解凍先のディレクトリと同じ/target/root/を使用する必要があります。これは、unzipが機能する方法です。

unzip -qq src.Zip "sub/dir/*" "/target/root/"

結局のところ、ルールは実際には単純です-dオプションに同じターゲットルートディレクトリを使用

ところで、-qqオプションはunzipを本当に静かにするためのものです。自由に削除してください。

6
ryenus