O comando ssh
permite executar praticamente qualquer comando no host remoto, por exemplo,
ssh yourlogin@remotehost rmdir somedir
onde neste exemplo somedir
é relativo ao diretório inicial do seu login.
Estou usando o scp para copiar coisas para um local remoto. Mas, às vezes, scp não funciona como esperado, descobri que às vezes a cópia não é concluída adequadamente (possivelmente quando eu adicionei novos arquivos à pasta que estou copiando).
Por isso, primeiro quero remover a pasta remota e depois fazer a cópia para garantir que eu tenha exatamente o que preciso.
Existem outros comandos como scp (por exemplo, srm ou smv)? Ou existe uma maneira de remover pastas e arquivos remotos?
O Rsync copiará um caminho / árvore inteiro e verificará os arquivos que já estão no destino e não se incomodará em copiá-los se eles não forem alterados. Se você usar a opção --delete, ela excluirá todos os arquivos que estiverem no destino e que não estejam mais na origem. Funciona com ssh
Se o seu servidor SSH remoto suportar o subsistema SFTP (a maioria sim, a menos que tenha sido explicitamente desativada), pode usar o sftp
shell (ou qualquer outro SFTP client ) para manipular arquivos e diretórios no servidor remoto.
Infelizmente, uma coisa que a shell básica sftp
aparentemente não faz not é a remoção recursiva do diretório; Para excluir um diretório, você deve excluir todo o seu conteúdo primeiro. A maioria dos outros clientes (especialmente os gráficos) normalmente o suportam.
(Você não menciona qual é o seu sistema operacional local, mas se é o Linux, você pode use seu gerenciador de arquivos nativo como cliente GUI SFTP apontando para um URL como sftp: // usuário @ host / caminho /. Para Windows, o WinSCP é um cliente decente, e FileZilla é uma boa solução multi-plataforma.)
Para esvaziar um diretório remoto (/ local), use o rsync assim:
rsync -r --delete-excluded --exclude=* / server:/tmp/empty_this_dir/
Cuidado - remove tudo abaixo do destino especificado!