Utilice la línea de comando FTP para obtener el archivo con ruta absoluta

Utilice la línea de comando FTP para obtener el archivo con ruta absoluta

Me pregunto si con una utilidad de línea de comando FTP, puede usar el getcomando FTP para obtener un archivo con una ruta absoluta, en lugar de tener que cdingresar en cada directorio sucesivo para obtener un archivo.

cuando escribo

ftp> get pub/sdc.tgz

O incluso esto (con una o dos barras antes de pub)

ftp> get /pub/sdc.tgz

Me dice que no encuentra el archivo:

local: /pub/sdc.tgz remote: /pub/sdc.tgz
ftp: local: /pub/sdc.tgz: No such file or directory

Sin embargo, cuando en lugar de eso lo hago

ftp> cd pub
ftp> get sdc.tgz

Funciona totalmente bien.

¿Existe alguna sintaxis correcta en la línea de comando ftp para obtener un archivo con una ruta absoluta, o tengo que cdhacerlo pubprimero para hacerlo?

(Para su información: lo que estoy tratando de hacer es usar un script PERL que se ejecuta diariamente y que guarda un archivo en un servidor FTP, luego un script posterior que 1. obtendrá el archivo, lo cual no me opongo a usar wgetpara hacerlo. y 2. eliminar el archivo después de obtenerlo, lo cual debo hacer con FTP. Quiero que el segundo script elimine el archivo, de modo que en el futuro, si el primer script tiene problemas para guardar el archivo en el servidor FTP. el segundo script sabrá que hubo un error porque el archivo no está allí. También podría guardarlo con nombres diferentes, pero no quiero contaminar el servidor FTP con un montón de archivos de diferentes días).

Respuesta1

Es porque cuando usa Get de FTP y no especifica una ruta/nombre de archivo local, intenta usar la misma ruta/nombre que el archivo remoto.

Este error:

ftp: local: /pub/sdc.tgz: No such file or directory

Le dice que no puede encontrar el archivo en la máquina LOCAL. Entonces mi suposición sería que no tienes una carpeta "pub" en la raíz de tu disco local.

Sintaxis:conseguirarchivo remoto [archivo local]

Parámetro(s):

archivo remoto: especifica el archivo remoto que se va a copiar.

archivo local: especifica el nombre que se utilizará en la computadora local.Si no se especifica, el archivo recibe el nombre de archivo remoto.

Entonces prueba algo como:

ftp> get pub/sdc.tgz c:\temp\sdc.tgz

o quizás

ftp> get pub/sdc.tgz .\sdc.tgz

Para descargarlo a la carpeta actual.

Veraquípara más información sobreConseguiruso.

Pregunta SU relacionada:¿Puedo especificar un destino con el comando ftp get?

Respuesta2

Puede utilizar ncftpget, que utiliza rutas absolutas, si puede instalarlo en su máquina cliente.

Además, si está utilizando Perl, puede echar un vistazo amódulo FTP.

información relacionada