Línea de comandos Cliente FTP confundido por Tilde?

2

Noté este comportamiento realmente extraño en el cliente ftp de la línea de comandos de macOS ...

get index.html ~/Desktop/index.html

falla si no existe ningún 'index.html' en el Escritorio con el error

ftp: Can't access '~/Desktop/index.html': No such file or directory

pero

get index.html /Users/fweth/Desktop/index.html

tiene éxito! Después, también puedo usar el primer comando para actualizar el archivo local. ¿Alguien me puede explicar esto?

    
pregunta fweth 20.09.2017 - 19:48

1 respuesta

3

Lo que estás viendo es el comportamiento esperado.

La tilde (~) es una parte de la sintaxis estándar del shell que es sinónimo con el directorio de inicio del usuario.

  

La expansión de Tilde es el proceso de conversión de estas abreviaturas a   los nombres de directorio que representan.

Cuando está en FTP, no está usando su shell (bash, csh, zsh, etc.), sino que está usando el cliente FTP y no tiene idea de lo que significa la tilde y, por lo tanto, no puede expandirlo. .

~ y HOME son la misma cosa. Si ejecuta el comando

$ echo ~ $HOME

Debes obtener la salida de tu directorio de inicio dos veces. (El $ es para expansión variable)

/Users/fweth /Users/fweth


Trivia

La convención de usar la tilde (~) deriva del Lear Siegler ADM-3A terminal que tenía una método abreviado de teclado para el INICIO de los usuarios en la misma tecla que la tilde.

    
respondido por el Allan 20.09.2017 - 20:02

Lea otras preguntas en las etiquetas