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

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

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

使ってみよう

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

ただし、これを行うと、解凍したいパスにのみフォルダが作成され、他の操作は実行されません。

答え1

unzip /path/to/archive.zip "in/archive/folder/*" -d "/path/to/unzip/to"

答え2

努力する:

unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to

答え3

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

/target/root/これが元の解凍操作の宛先ディレクトリであると仮定します。たとえば、次のようになります。

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

/target/root/その後、特定のサブディレクトリのみを抽出したい場合でも、解凍した方法と同様に、ターゲットディレクトリと同じコンテンツを使用する必要があります。

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

結局のところ、ルールは実際には非常に簡単です。-dオプションに同じ宛先ルートを使用します。

ただし、この-qqオプションを使用すると減圧が非常に静かになりますので、自由に取り除いてください。

答え4

*両方を指定する必要があります**/*path/in/archive/

unzip src.zip 'path/*' 'path/**/*' -d /target/dir/

これはうまくいきます。

これらのいずれかを無視すると、既存のファイルはスキップされます。

例:

unzip aar.aar 'res/**/*' 'res/*' -d /lib/res/

関連情報