zip形式のアーカイブから特定のディレクトリに特定のファイルのみを抽出します



Extract Only Specific File From Zipped Archive Given Directory



解決:

unzip -j'myarchive.zip''in / archive / file.txt '-d' / path / to / unzip / to '

ファイル名だけでなく、zipファイルのフルパスを入力します。 zipファイル内から見た構造を維持するようにしてください。

これにより、単一のファイルが抽出されますfile.txtのmyarchive.zipから/path/to/unzip/to/file.txt。




次のコマンドを使用して、テキストだけを標準出力に抽出できます。-pオプション:

unzip -p myarchive.zip path / to / zipped / file.txt> file.txt

これはメタデータ(日付、アクセス許可など)を抽出せず、ファイルの内容のみを抽出します(明らかに、シンボリックリンク、デバイス、ディレクトリなどではなく、通常のファイルに対してのみ機能します)。これは、後でファイルを移動する必要がないという利便性のために支払う代償です。



または、アーカイブをディレクトリとしてマウントし、ファイルをコピーするだけです。 AVFSの場合:

mountavfs cp -p〜 / .avfs '$ PWD / myarchive.zip#' / path / to / ziped / file.txt。

またはfuse-zipを使用:

mkdirmyarchive.dヒューズ-zipmyarchive.zip myarchive.d cp -pmyarchive.d / path / to / zipped / file.txt。フューザーマウント-umyarchive.d; rmdir myarchive.d 

より単純なバージョン:



ARCHIVE_NAMEPATH_OF_FILE_INSIDE_ARCHIVEを解凍します

これにより再作成されます現在のディレクトリにあるPATH_OF_FILE_INSIDE_ARCHIVEですが、指定されたファイルのみを抽出します。

Zipアーカイブ内のすべてのファイルを一覧表示するには:

unzip -l ARCHIVE_NAME