lftp: remove o prefixo da pasta durante o upload de arquivos

1

Eu quero enviar alguns arquivos em uma pasta local para uma pasta remota, graças ao cliente ftp da linha de comando lftp .

O que eu quero:

No meu computador local, eu tenho:

me@local $ tree
my-site
├── index.html
└── css/

Quando vou ao meu servidor FTP, quero ter:

me@ftp_server $ tree
dev-site/
├── index.html
└── css/

O que eu quero fazer é enviar o conteúdo local do my-site dir para o controle remoto dev-site dir; mas não o my-site dir em si. Então, eu só quero fazer upload de arquivos e remover esse nome de prefixo de diretório.

O que eu tentei:

Eu tentei isso:

# On my local computer :
$ ls
my-site/
$ lftp -u username,passwd ftp.foobar.cmo -e "mirror -R -p my-site/ dev-site/ ; quit"

Infelizmente, ele faz o upload para o local my-site dir no controle remoto dev-site , como:

# On my remote ftp server :
$ tree
dev-site/
└── my-site/
    ├── index.html
    └── css/

Solução alternativa:

Funciona como esperado se eu fizer:

# On my local computer :
$ cd my-site/
$ lftp -u username,passwd ftp.foobar.cmo -e "mirror -R -p ./ dev-site/ ; quit"

Mas eu quero evitar esse cd sujo.

Pergunta:

Existe alguma maneira de remover um prefixo de diretório durante o upload de arquivos, para fazer o upload do conteúdo de um diretório e não do próprio diretório?

    
por PierreF 13.01.2017 / 12:15

1 resposta

1

Que sobre se você fizer o espelho sem a última barra no ponto de destino?

lftp -u user,password -e 'mirror -R -p /home/user/my-site dev-site ; quit' ftp.foo.cmo

Funciona aqui usando o lftp versão 3.7.3:

adminnicolas@fw1:~$ lftp --version
LFTP | Version 3.7.3 | Copyright (c) 1996-2008 Alexander V. Lukyanov
    
por 13.01.2017 / 12:29

Tags