portable - wget ubuntu
¿Cómo forzar que wget sobrescriba un archivo existente ignorando la marca de tiempo? (6)
Intenté ''-N'' y ''--no-clobber'', pero el único resultado que obtengo es recuperar una nueva copia del example.exe existente con un número agregado con este synax ''example.exe.1''. Esto no es lo que me gustaría conseguir. Solo necesito descargar y sobrescribir el archivo example.exe en la misma carpeta donde ya guardé una copia de example.com sin que Wget verifique si la mina es más antigua o más reciente con respecto al archivo example.exe ya presente en mi carpeta de descarga . ¿Crees que es posible o necesito crear un script que elimine el archivo example.exe o tal vez algo que cambie su fecha de modificación, etc.?
Me gusta la opción -c. Comencé con la página del manual y luego con la web, pero he buscado esto varias veces. Como si estuvieras transmitiendo una cámara web, la imagen siempre debe llamarse imagen.jpg. Parece que debería ser más claro en la página de manual.
He estado usando esto por un par de años para descargar cosas en segundo plano, a veces combinado con "limit-rate =" en mi archivo wgetrc
while true
do
wget -c -i url.txt && break
echo "Restarting wget"
sleep 2
done
Haga un pequeño archivo llamado url.txt y pegue la URL del archivo en él. Establezca este script en su ruta o tal vez como un alias y ejecútelo. Sigue volviendo a intentar la descarga hasta que no haya ningún error. A veces al final se mete en un bucle mostrando
416 Requested Range Not Satisfiable
The file is already fully retrieved; nothing to do.
Pero eso es inofensivo, solo ctrl-c lo. Creo que siempre se ha obtenido el archivo que quería, incluso si wget se queda sin reintentos o si la conexión desaparece temporalmente. He descargado cosas durante días a la vez con él. Una imagen de CD en el acceso telefónico, sí, siempre con wget.
Mi caso de uso involucra dos URL diferentes, a veces la segunda no existe, pero si existe, quiero que sobrescriba el primer archivo.
El problema de usar wget -O es que, cuando el segundo archivo NO exista, sobrescribirá el primer archivo con un archivo EN BLANCO.
Así que la única manera que pude encontrar es con una sentencia if:
--spider comprueba si existe un archivo, y devuelve 0 si lo hace
--quiet falla silenciosamente, sin salida
-nv está tranquilo, pero sigue reportando errores.
wget -nv https://example.com/files/file01.png -O file01.png
# quietly check if a different version exists
wget --quiet --spider https://example.com/custom-files/file01.png
if [ $? -eq 0 ] ; then
# A different version exists, so download and overwrite the first
wget -nv https://example.com/custom-files/file01.png -O file01.png
fi
Es detallado, pero lo encontré necesario. Espero que esto sea de ayuda para alguien.
-c
o --continue
Del manual :
Si usa ''-c'' en un archivo que no está vacío, y el servidor no admite la descarga continua, Wget reiniciará la descarga desde cero y sobrescribirá el archivo existente por completo .
wget
no le permite sobrescribir un archivo existente a menos que nombre explícitamente el archivo de salida en la línea de comandos con la opción -O
.
Soy un poco perezoso y no quiero escribir el nombre del archivo de salida en la línea de comandos cuando ya se conoce del archivo descargado. Por lo tanto, yo uso rizo así:
curl -O http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl
Tenga cuidado al descargar archivos como este desde sitios inseguros. El comando anterior escribirá un archivo con el nombre dado que el sitio web conectado desea darle un nombre (dentro del directorio actual). El nombre final puede estar oculto a través de redirecciones y scripts de php o puede estar oculto en la URL. Podría terminar sobrescribiendo un archivo que no desea sobrescribir.
Y si alguna vez encuentra un archivo llamado ls
o cualquier otro nombre atractivo en el directorio actual después de usar el curl
esa manera, absténgase de ejecutar el archivo descargado. ¡Puede ser un troyano descargado de un sitio web corrupto o corrupto!
Si especifica el archivo de salida con la opción -O
, se sobrescribirá cualquier archivo existente.
Por ejemplo:
wget -O index.html bbc.co.uk
Ejecutar varias veces mantendrá la sobreescritura de index.html.
wget --backups=1 google.com
cambia el nombre del archivo original con el sufijo .1
y escribe un archivo nuevo en el nombre de archivo deseado.
No exactamente lo que se solicitó, pero podría ser útil en algunos casos.