tarファイルのルートディレクトリから特定の拡張子を持つファイルを抽出するには?

tarファイルのルートディレクトリから特定の拡張子を持つファイルを抽出するには?

tarファイルがあります。その構造は次のとおりです。

-images.tar.gz

  -folder_0_image_1.jpg
  -folder_0_image_2.jpg
  -folder_0_image_3.png
  -...

  -folder_1

      -folder_1_image_1.jpg
      -folder_1_image_2.jpg
      -...

  -folder_2

      -folder_2_image_1.jpg
      -folder_2_image_2.jpg
      -...

  -folder_x ...

すべてのファイルを抽出する方法ルートディレクトリから .jpg 拡張子はありますか?

(次のファイルを抽出したい。フォルダ_0_image_1.jpgフォルダ_0_image_2.jpg...)

答え1

次のようにサブフォルダーのファイルを除外する必要があります。

tar --wildcards --exclude='*/*' -xvzf images.tar.gz '*.jpg'

説明する:

 --wildcards

ワイルドカードに抽出するファイルを指定するという意味です。つまり*.jpg、後で指定してください。

--exclude='*/*'

含まれているすべてのアイテムを除外(抽出することを選択しない)するオプション/- つまり、サブフォルダ内のすべてのファイル

-xvzf

eXtract、詳細出力、gunZip最初に解凍、ファイルからアーカイブ

images.tar.gz

もちろん、アーカイブ名

'*.jpg'

ファイル名パターン - 私たちはtar1つを約束し、これが正しいです.jpg

関連情報