Como faço para scp um nome de arquivo com espaços?

6

Estou tendo um pouco de dificuldade em usar scp para transferir arquivos de um computador remoto. O problema aparentemente tem a ver com o nome do diretório em que os arquivos estão contidos. Eles estão em uma unidade de CD chamada photos 4 (com um espaço entre photos e 4 ). Quando tentei a transferência, usei o seguinte comando:

scp [remote username]@192.168.1.X:/media/[remote username]/photos\ 4/file.jpg /home/[username]/Pictures

No entanto, recebo uma mensagem de erro dizendo No directory: /media/[remote username]/photos . Achei que a barra invertida escaparia do espaço para que o diretório fosse lido como photos 4 .

Alguém pode me informar sobre o que estou fazendo de errado aqui?

(Como um aparte, eu fiz uma cópia de file.jpg para a área de trabalho do computador remoto e, em seguida, executei o comando:

scp [remote username]@192.168.1.X:/home/[remote username]/Desktop/file.jpg /home/[username]/Pictures

e funcionou, de modo que a sequência de escape parece ser o culpado. Eu simplesmente não consigo descobrir o que há de errado nisso.)

    
por Alcuin Arundel 15.04.2016 / 22:58

1 resposta

5

Espaços em diretórios ou nomes de arquivos são o inimigo natural de um sistema Linux, mas podem, claro, ser ignorados com a devida diligência. Existem 3 possibilidades que você pode tentar:

  1. scp [remote username]@192.168.1.X:"'/media/remote_username/photos 4/file.jpg'" .
  2. scp [remote username]@192.168.1.X:"/media/remote_username/photos\ 4/file.jpg" .
  3. scp [remote username]@192.168.1.X:/media/remote_username/photos\\ 4/file.jpg .

Todos devem funcionar, mas alguns são sintaticamente mais fáceis de entender do que outros ...

Referências:

por andrew.46 14.07.2016 / 04:00