Quero duplicar um diretório em um servidor FTP ao qual estou conectado a partir do meu Mac através da linha de comando
Digamos que tenho file
. Eu quero ter files2
com todos os subdiretórios e arquivos de file
, no mesmo diretório do original. Qual seria a maneira mais simples de conseguir isso?
EDITAR:
Com mget
e mput
você pode baixar todos os arquivos e enviá-los novamente para uma pasta diferente, mas isso definitivamente NÃO é o que eu quero/preciso (comecei esta pergunta tentando evitar a duplicação com este upload de download método do cliente dektop)
O que você tem não é uma linha de comando unix, o que você tem é uma sessão de FTP. O FTP foi projetado principalmente para fazer upload e download de arquivos, não para gerenciamento geral de arquivos e não permite que você execute comandos arbitrários no servidor. Em particular, até onde eu sei, não há como acionar uma cópia do arquivo no servidor: tudo que você pode fazer é baixar o arquivo e depois carregá-lo com um nome diferente.
Alguns servidores oferecem suporte a extensões para o protocolo FTP, e é remotamente possível que uma dessas extensões permita copiar arquivos remotos. Experimentar help site
ou remotehelp
para ver quais extensões o servidor suporta.
Se você quiser uma linha de comando unix, você precisa de acesso remoto Shell, via rsh (r emote sh ell) ou mais comumente no ssh do século 21 (s ecure sh ell). Se este for um host da web, verifique se ele fornece acesso ssh. Caso contrário, entre em contato com o administrador do sistema. Mas não se surpreenda se a resposta for não: o acesso à linha de comando seria uma violação de segurança em algumas configurações de vários usuários, então pode haver um motivo legítimo para ele não ser oferecido.
Veja como fazer isso com lFTP :
# lftp ftp_Host
user ftp_user ftp_pass
mirror source target (download entire directory tree)
mirror -R source target (reverse mirror; upload entire directory tree)
Isso está errado agora, mas manter a exclusão para que a árvore de comentários não seja perdida
cp
copia arquivos e diretórios; você pode dar a ele o -r
sinalizador para fazer com que ele copie tudo recursivamente. Da pasta que contém file
:
$ cp -r file files2