web-dev-qa-db-ja.com

ファイルの内容を解凍しますが、アーカイブフォルダを作成しません

多くのディレクトリ、ファイルなどを含むファイルmyarchive.Zipがあります。このmyarchive.Zipファイルが「b」というディレクトリにあるとします。さて、「unzip myarchive.Zip」コマンドを使用すると、システムはデフォルトでZipファイルの内容を含む「myarchive」というディレクトリを作成します。私はnotシステムにこの「myarchive」ディレクトリを作成させたい-内容をディレクトリ「b」に抽出したいだけです。これは可能ですか?

私が今行っていることは、単に「cp」コマンドを発行して、新しく作成したディレクトリ(この場合は「myarchive」から「b」)からファイルを必要な場所にコピーすることです。

42
ScoobaSteve

私のバージョンのunzipには-jオプションは、ディレクトリを作成しません。

そう

unzip -j /path/to/file.Zip

Zipファイルに保存されているディレクトリ構造を復元せずに、すべてのファイルを現在のディレクトリに抽出します。

アーカイブから1レベルのディレクトリのみを削除する場合は、(myarchive/dir/file なので dir/fileではなくfile)、代わりにbsdtarZipファイルに加えてtarファイルをサポートします)とその-sオプション。

bsdtar -xf /path/to/file.Zip -s'|[^/]*/||'
51

bsdtar を使用すると、これは本当に簡単に見えます。

bsdtar --strip-components=1 -xvf file.Zip

3
ismail

質問であなたが言ったように、受け入れられた答えがどのように行うかを指定していませんが、Zipファイルに保存されているフォルダーパスを使用せずに特定のフォルダーに抽出したい場合は、-jオプションと-dこの方法でのオプション:

unzip -j /path/to/file.Zip -d other_folder

またはあなたの場合

unzip -j myarchive.Zip -d b
2