
Tengo un paquete de software web instalado en mi servidor Linux. Descargué una actualización en un archivo ZIP y quiero sobrescribir solo lo que cambió. (Por ejemplo, se deben reemplazar todos los archivos principales, pero no se deben modificar los archivos que agregué). ¿Cómo hago esto desde la línea de comando?
Mi método sería descomprimirlo en mi computadora personal y luego cargar los archivos modificados con un administrador de archivos GUI, pero quiero aprender cómo hacerlo desde la línea de comandos.
En mi caso, estoy intentando actualizar YOURLS en un servidor Ubuntu, pero la pregunta parece aplicable en general a la mayoría del software web como WordPress o similar.
Respuesta1
Entonces (una) de las formas más simples que me viene a la mente es descargar el archivo zip, extraerlo en algún lugar temporal, eliminar los archivos que no necesita y luego reemplazar los archivos YOURLS con los actualizados que acaba de descargar.
Para descargar el archivo (usando wget o curl) y extraerlo a un directorio temporal:
cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip
o
curl http://linktozipfile/file.zip -o file.zip
entonces
unzip file.zip
Ahora podemos decidir qué archivos no necesitamos y eliminarlos con la herramienta rm (eliminar/eliminar).
rm config.php
rm someotherfileidontwannareplace.php
Luego podemos reemplazar todos los archivos moviendo todos nuestros archivos actualizados al mismo directorio y reemplazando así los archivos antiguos.
cd ..
rsync -av newfolder/ oldfolder/
Si simplemente necesitamos agregar nuevos archivos, podemos hacer un método similar pero usando el --existing
indicador en mv para no sobrescribir los archivos existentes.
Esto se vería así
cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip
unzip file.zip
cd ..
rsync -av --existing newfolder/ oldfolder/