У меня есть URL, который приводит к большому размеру tar-файла, около 200 ГБ, мне нужно извлечь одну папку этого файла в моей системе Linux. Из-за большого размера файла я не хочу загружать весь файл в мою систему Linux. Также у меня нет доступа к исходной системе.

Есть ли способ извлечь только небольшую часть файла tar.gz?

2 ответа2

0

Формат tar не позволяет адресации файла (или каталога) , непосредственно - это связанно с тем, что т обезьяньих сотков зубки были Мент последовательно считываются из резервной среды.

Что вы можете, конечно, сделать, это остановить процесс после извлечения соответствующих частей. Вы бы сделали что-то вроде

curl -o - 'http://your/url' | tar -xvz your_filter

Это загрузит файл с самого начала и извлечет соответствующие части, как только у вас будет все, что вам нужно, вы можете остановить процесс, чтобы избежать загрузки остальных.

В зависимости от того, какой у вас доступ к исходному серверу, вы можете сделать лучше: у вас есть PHP без режима сохранения? Если да, вы можете извлечь то, что вам нужно, через shell_exec и друзей.

0

Чтобы извлечь только определенный каталог, вам нужно знать точные имена файлов. Подстановочные знаки не работают с tar. и команда будет выглядеть

curl -s -o - <URL>|tar xz /path/file1 /path/file2  ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .