我有一个大的tar.gz存档文件,其中包含nxml
个文件,总大小约为5gb。
我的目的是从中提取文件,但我不必提取所有文件。我必须提取所有名称大于阈值的文件。
例如:
让我们考虑1000是我们的阈值。所以
path/to/file/900.nxml
将不会被提取,但
path/to/file/1100.nxml
将被提取。
所以我的要求是从档案中有条件地提取文件。
谢谢
答案 0 :(得分:1)
tar -tf <archive>
获取存档中的文件列表。<filelist>
,每个文件一行。
tar -xf <archive> -T <filelist>
提取您需要的文件。-T
或--files-from
从给定文件中读取要处理的文件名。
答案 1 :(得分:1)
您还可以使用tar的--wildcards
选项。
例如,在您的阈值为1000的情况下,您可以使用tar -xf tar.gz --wildcards path/to/files/????*.nxml
。 ?
将匹配一个字符,而使用*
将匹配任意数量的字符。此模式将查找具有4个或更多字符的任何文件名。
希望这会有所帮助。