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