如何从 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_图像_1.jpg,folder_0_image_2.jpg...)

答案1

您需要排除子文件夹中的文件,如下所示:

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

解释:

 --wildcards

意味着我们通过通配符指定要提取的文件,即*.jpg- 稍后指定

--exclude='*/*'

排除(不选择提取)所有带有 a 的/条目的选项 - 即子文件夹中的所有文件

-xvzf

eXtract、详细输出、gunZip 首先解压缩、从文件存档

images.tar.gz

当然是存档名称

'*.jpg'

文件名模式 - 我们承诺过tar一个,这就是 - 以.jpg.

相关内容