Untar com filtro de data

0

Existe alguma maneira de descompactar e extrair apenas os arquivos que estão acima de uma determinada data, incluindo a estrutura do diretório?

Eu restaurei um backup em um servidor de jogo, mas ele tinha alguns dias de vida. No entanto, eu tenho um arquivo tar de toda a estrutura que é mais atual e saudável, então agora eu quero extrair todos os arquivos (incluindo a estrutura de diretórios) com base em um filtro de data nos arquivos, se possível?

    
por Don 16.06.2010 / 20:22

2 respostas

1

Se você não consegue descobrir como fazer algo com o tar, pode experimentar o pax, que pode ser visto como uma versão moderna do tar (e do cpio). Ele pode fazer a maior parte do que o tar pode fazer (pelo menos enquanto as unidades de fita não estão envolvidas), e sua sintaxe não sofre com décadas de inutilização.

Em particular, o pax oferece uma opção -T [from_date][,to_date] , para que você possa fazer algo como pax <backup.tar -r -pe -T 1006150000 para extrair apenas arquivos datados de 15 de junho ou mais recentes. Como alternativa, pax <backup.tar -r -pe -u evitará extrair arquivos para os quais a versão no archive é mais antiga que a versão no diretório de extração.

Frequentemente, o Pax não é instalado por padrão, mas todas as distribuições do Linux devem tê-lo. Ele é especificado pelo Single Unix, portanto, ele deve estar disponível em todos os sistemas unix e em ambientes unixy, como o Cygwin.

Por fim, se você quiser um controle muito bom, poderá extrair os arquivos de outro local e usar as possibilidades avançadas de rsync , ou find para ajustar o que deseja copiar (talvez com pax -rw -pe . .)

    
por 08.07.2010 / 22:14
0

Existe uma opção --after-date e uma opção --newer-mtime ,
mas, lembro-me de usá-los para arquivar, não para extrair.

    
por 16.06.2010 / 20:29