Editar: Conforme observado nos comentários, tar
modifica o mtime e o ctime dos arquivos extraídos para que correspondam às datas no arquivo, portanto, esse primeiro método não funcionará, a menos que -m
flag foi usado durante a extração. O último método é ideal, mas pode resultar na exclusão de arquivos que você deseja se os nomes dos arquivos colidirem.
find
suporta um sinalizador -newer
file
, especificando que ele deve localizar arquivos mais recentes que 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 19:25:30:
$ tar xzf whoops.tar.gz
$ touch -t 200909261925.30 whoops-timestamp
$ find . -newer whoops-timestamp
E se você tiver certeza de que exibiu os arquivos corretos:
$ find . -newer whoops-timestamp -print0 | xargs -0 rm -v
Uma alternativa é excluir todos os arquivos listados no arquivo que você acabou de extrair:
$ tar tfz whoops.tar.gz | xargs rm -v