Editar: Como observado nos comentários, tar
modifica o mtime e o ctime dos arquivos extraídos para coincidir com as datas no arquivo, então este primeiro método não funcionará a menos que o -m
bandeira foi usada durante a extração. O último método é ideal, mas pode resultar na exclusão de arquivos que você deseja se os nomes de arquivos colidirem.
find
suporta um -newer
file
sinalizador, especificando que ele deve localizar arquivos Arquivo . touch
tem um argumento -t para modificar o tempo de acesso / modificação em um arquivo. Então, para consertar um oops que ocorreu por volta das 19h25min30s:
$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp
E se você estiver confiante de que exibiu os arquivos corretos:
$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v
Uma alternativa é excluir todos os arquivos listados no archive que você acabou de extrair:
$ tar tfz whoops.tar.gz | xargs rm -v
tar
preservará as datas dos arquivos, a menos que você use o-m
bandeira. Então, o primeiro método não funcionará como regra geral.Outra alternativa com encontrar:
onde o +30 é o número de dias que você deseja manter.
fonte