%3F.png)
O utilitário Zip nos permite
Defina a hora da "última modificação" do arquivo zip para a hora da "última modificação" mais recente (mais antiga) encontrada entre as entradas no arquivo zip
com
zip -o [...]
ou
zip --latest-time [...]
Qual é a maneira mais fácil de fazer o mesmo com o TAR?
Responder1
new_file="$(find dir/ -type f -exec stat --printf='%n\0%Y\n' {} + | sort -k2,2 -nt '\0' | tail -n1 | cut -d '' -f1)"; tar -zcf foo.tar.gz dir/; touch -r "$new_file" foo.tar.gz
Exemplo do que acontece
tar -zcf foo.tar.gz dir/; touch -r fileX foo.tar.gz
Você deveria mudarfoo.tar.gz,diretório/no comando acima
Isto
- encontra todos os arquivos emdiretório/(o mesmo para ser alcatroado)
- obtém o carimbo de data/hora da última modificação em segundos desde a época
- classifica numericamente e pega o de baixo (mais recente)
- touch usa esse arquivo como referência ao ajustar o carimbo de data/hora foo.tar.gz.
Responder2
Provavelmente não existe uma linha (pelo menos no POSIX). Eu uso um script (touch-dirs) para definir os carimbos de data e hora do diretório para corresponder ao carimbo de data e hora mais recente dos arquivos no diretório e, em seguida, usar esse carimbo de data e hora para o arquivo resultante.
Essa última etapa pode ser realizada usando a -r
opção (referência) detouch
. Na verdade eu também não uso isso, mas sim um utilitário (cpd
).