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

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

2 ответа2

1

Если вы не можете понять, как что-то сделать с tar, вы можете попробовать pax, который вы можете назвать современной версией tar (и cpio). Он может делать большую часть того, что может делать tar (по крайней мере, до тех пор, пока ленточные накопители не задействованы), и его синтаксис не страдает от десятилетий бесполезности.

В частности, pax предлагает параметр -T [from_date][,to_date] , так что вы можете сделать что-то вроде pax <backup.tar -r -pe -T 1006150000 чтобы извлечь только файлы, датированные 15 июня или новее. Кроме того, pax <backup.tar -r -pe -u будет воздерживаться от извлечения файлов, для которых версия в архиве старше, чем версия в каталоге извлечения.

Pax часто не устанавливается по умолчанию, но все дистрибутивы Linux должны иметь его. Он указан в Single Unix, поэтому он должен быть доступен во всех системах Unix и Unixy, таких как Cygwin.

Наконец, если вам нужен действительно точный контроль, вы можете извлечь файлы в другом месте и использовать расширенные возможности rsync или find для точной настройки того, что вы хотите скопировать (возможно, с помощью pax -rw -pe ...)

0

Существует --after-date опция --newer-mtime ,
но я могу вспомнить, используя их для архивирования, а не для извлечения.

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