子ディレクトリとそのコンテンツを無視し、親ディレクトリコンテンツを解凍します。

子ディレクトリとそのコンテンツを無視し、親ディレクトリコンテンツを解凍します。

.zipファイルを解凍しています。これは可能ですが、サブディレクトリとそのコンテンツは無視して親フォルダデータのみを抽出する必要があります。

以下はzipファイルの名前の形式です。

ファイル名.csv.zip

私が使ったコマンドはunzip -j /zip_filepath "*" -d /final_directoryです。

上記のコマンドを試しましたが、上記のコマンドはzipファイルの一部であるzipコンテンツ全体をすべて抽出します。

zipファイルのファイル構造については、以下をご覧ください。

  • -rw-r--r-- abc.csv
  • drwxrwxr_x __MACOSX/
  • -rw-r--r-- __MACOSX/_abc.csv

2番目のzipファイル構造:* -rw-r - -r - xyz.csv

zipファイルからabc.csvファイルとxyz.csvファイルのみを抽出したいと思います。


出力:解凍 -Z -1 abc.zip

__MACOSX/
__MACOSX/_abc.csv
abc.csv

出力:解凍 -Z -1 /user/sam/abc.zip -d /user/sam/2019-05-22/

caution: not extracting -d ignored

    abc.csv
    __MACOSX
    __MACOSX/._abc.csv

ここの出力はabc.csvファイルでなければなりません。

出力:解凍 -Z -1 xyz.zip

xyz.csv

出力:解凍 -Z -1 /user/sam/xyz.zip -d /user/sam/2019-05-22/

caution: not extracting -d ignored
xyz.csv

ベストアンサー1

-x次のようにオプションを引数として使用できます'*/*'

unzip filename.csv.zip -x '*/*' -d /final_directory

caution: excluded filename not matched: */*ファイルに似た状況で警告を表示したくない場合は、xyz.zip次のようにします。

unzip filename.csv.zip -x '*/*' -d /final_directory 2> /dev/null

ノート:覚えておいてください。これにより、すべての項目が抑制されます。標準エラー出力。そのような警告を表示しないようにコマンドに指示することをお勧めしますunzip(その種類の警告のみ)。ドキュメントを少し見てみましたが、オプションは表示されませんでした。したがって、あなたがこの警告だけを抑制するように指示できない場合は、unzip何も抑制しない方が良いと思います。警告は何の害もないからです。ただし、すべてのエラーを削除すると、機密情報を見逃す可能性があります。

おすすめ記事