2016-11-04 6 views
0

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

Я знаю, что я могу начать с произвольного файла в архиве, используя --starting-file=, но, похоже, нет команды --stopping-file=.

Похоже, что я мог написать инвертированный шаблон исключения, чтобы он проигнорировал все файлы после этого, но похоже, что он все равно попытается прокрутить все индексы (по крайней мере, на верхних папках), проверяя их, потребляя ресурсы и предотвращая досрочное расторжение.

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

+1

Не могли бы вы составить список файлов из файла start-file для остановки-файла и использовать это как список аргументов для опции extract? – Jens

ответ

0

Вы можете выписывать полный список файлов с tar -t -f my.tar > my.list

Цепной фильтры, как grep или изменение файла может ограничить список. Таким образом, чтобы извлечь все файлы и папки по пути «мой/папка/пути», запустите tar -t -f my.tar | grep "my/folder/path" > my.list

Затем извлечь перечисленные файлы с tar x -T my.list -f my.tar

Благодаря Jens для стратегии предложения.