多くのディレクトリ、ファイルなどを含むファイルmyarchive.Zipがあります。このmyarchive.Zipファイルが「b」というディレクトリにあるとします。さて、「unzip myarchive.Zip」コマンドを使用すると、システムはデフォルトでZipファイルの内容を含む「myarchive」というディレクトリを作成します。私はnotシステムにこの「myarchive」ディレクトリを作成させたい-内容をディレクトリ「b」に抽出したいだけです。これは可能ですか?
私が今行っていることは、単に「cp」コマンドを発行して、新しく作成したディレクトリ(この場合は「myarchive」から「b」)からファイルを必要な場所にコピーすることです。
私のバージョンのunzip
には-j
オプションは、ディレクトリを作成しません。
そう
unzip -j /path/to/file.Zip
Zip
ファイルに保存されているディレクトリ構造を復元せずに、すべてのファイルを現在のディレクトリに抽出します。
アーカイブから1レベルのディレクトリのみを削除する場合は、(myarchive/dir/file
なので dir/file
ではなくfile
)、代わりにbsdtar
(Zip
ファイルに加えてtar
ファイルをサポートします)とその-s
オプション。
bsdtar -xf /path/to/file.Zip -s'|[^/]*/||'
bsdtar を使用すると、これは本当に簡単に見えます。
bsdtar --strip-components=1 -xvf file.Zip
質問であなたが言ったように、受け入れられた答えがどのように行うかを指定していませんが、Zipファイルに保存されているフォルダーパスを使用せずに特定のフォルダーに抽出したい場合は、-j
オプションと-d
この方法でのオプション:
unzip -j /path/to/file.Zip -d other_folder
またはあなたの場合
unzip -j myarchive.Zip -d b