Estou tentando remover um diretório com muitos arquivos e pastas do meu espaço de servidor privado. Estou fazendo logon via SFTP; Eu posso acessar o diretório inteiro sem problemas; Eu posso até excluir arquivos individuais com rm. Mas isso me levaria uma eternidade - então eu realmente gostaria de fazer o rmdir na pasta mais alta que quero remover. Mas quando faço isso, recebo
Não foi possível remover o diretório: Falha
Alguma idéia do que eu poderia estar fazendo de errado?
Muito obrigado, Sam
Respostas:
Na minha experiência, o rmdir prefere trabalhar em um diretório vazio. Se você está tentando excluir o diretório
foo
, eu faria:fonte
rm foo/*
não estava funcionando porquefoo/
continha diretórios não vazios. Felizmente, tambémrsync
foi permitido e criei um diretório vazio localmente e, em seguida, useirsync -rv --delete empty_local_dir/ host.example.org:/foo/
para remover tudo abaixo dofoo/
diretório remoto . Depois foi possívelrmdir foo
via SFTP.Você não especificou qual cliente SFTP está usando. Então, eu estou assumindo o OpenSSH SFTP (
sftp
).O comando
rmdir
no cliente SFTP do OpenSSH é mapeado diretamente para aSSH_FXP_RMDIR
solicitação do protocolo SFTP. A especificação SFTP para a versão 3 (a usada pelo OpenSSH) menciona especificamente que aSSH_FXP_RMDIR
operação pode falhar "se o diretório especificado não estiver vazio" (embora isso não pareça exigido).Se o diretório não tiver subdiretórios, você poderá usar
rm foo/*
(ou seja, comando OpenSSH SFTP, não comando shell) para remover todos os arquivos no diretório primeiro. E então usermdir
.fonte
rm -r *
com o SFTP. Eu não acho possível.sftp
(cliente de linha de comando OpenSSH). É possível com SFTP (protocolo), se você tiver um cliente suficientemente inteligente.