Escapando aspas para scp

3

Eu precisava escrever um que se comportasse corretamente com desagradável (espaços, chaves, etc.) nomes de arquivos.

scp -rv "$1" shiny:/Volumes/Seagate3To/\"$1\"

Esta função funciona, mas eu não entendo porque as aspas precisam escapar no segundo argumento de scp .

    
por alecail 14.12.2012 / 16:37

1 resposta

4

Digamos que $ 1 seja

This is a test directory name

Nós escapamos das aspas duplas porque queremos passar o diretório de destino (parte após dois pontos) como um todo (incluindo as aspas duplas) para a máquina de destino.

A seguir, queremos que o passado segmente

/Volumes/Seagate3To/"This is a test directory name"

Sem o escape, a aspa dupla será consumida pela máquina local e a seguinte string será enviada, o que se torna 6 strings separadas por espaço

/Volumes/Seagate3To/This is a test directory name

Resultando em um erro.

    
por 14.12.2012 / 16:57

Tags