%3F.png)
La utilidad Zip nos permite
Establezca la hora de "última modificación" del archivo zip en la hora de "última modificación" más reciente (más antigua) que se encuentra entre las entradas del archivo zip
con
zip -o [...]
o
zip --latest-time [...]
¿Cuál es la forma más sencilla de hacer lo mismo con TAR?
Respuesta1
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
Ejemplo de lo que pasa
tar -zcf foo.tar.gz dir/; touch -r fileX foo.tar.gz
deberías cambiarfoo.tar.gz,directorio/en el comando anterior
Él
- encuentra todos los archivos endirectorio/(lo mismo para ser alquitranado)
- obtiene su última marca de tiempo de modificación en segundos desde la época
- ordena numéricamente y toma el de abajo (el más reciente)
- touch usa ese archivo como referencia al ajustar la marca de tiempo foo.tar.gz.
Respuesta2
Probablemente no haya una sola línea (en POSIX al menos). Yo uso un script (directorios táctiles) para establecer marcas de tiempo del directorio para que coincidan con la marca de tiempo más reciente de los archivos dentro del directorio y luego usar esa marca de tiempo para el archivo resultante.
Ese último paso se puede realizar utilizando la -r
opción (referencia) detouch
. En realidad yo tampoco uso eso, sino una utilidad (cpd
).