Estoy tratando de eliminar un directorio con muchos archivos y carpetas del espacio de mi servidor privado. Estoy iniciando sesión a través de SFTP bien; Puedo acceder a todo el directorio sin problemas; Incluso puedo eliminar archivos individuales con rm. Pero esto me llevaría una eternidad, así que realmente me gustaría hacer rmdir en la carpeta más alta que quiero eliminar. Pero cuando hago esto, me sale
No se pudo eliminar el directorio: error
¿Alguna idea de lo que podría estar haciendo mal?
Muchas gracias Sam

Respuestas:
En mi experiencia, rmdir prefiere trabajar en un directorio vacío. Si intenta eliminar el directorio
foo, yo haría:fuente
rm foo/*no funcionaba porquefoo/contenía directorios no vacíos. Afortunadamente tambiénrsyncse permitió y creé un directorio vacío localmente y luegorsync -rv --delete empty_local_dir/ host.example.org:/foo/lo eliminé todo debajo delfoo/directorio remoto . Posteriormente fue posiblermdir foovía SFTP.No ha especificado qué cliente SFTP está utilizando. Entonces supongo que OpenSSH SFTP (
sftp).El comando
rmdiren el cliente OpenSSH SFTP se asigna directamente a laSSH_FXP_RMDIRsolicitud del protocolo SFTP. La especificación SFTP para la versión 3 (la utilizada por OpenSSH) menciona específicamente que laSSH_FXP_RMDIRoperación puede fallar, "si el directorio especificado no está vacío" (aunque no parece obligarlo).Si el directorio no tiene subdirectorios, puede usar
rm foo/*(es decir, el comando SFTP de OpenSSH, no el comando de shell) para eliminar primero todos los archivos del directorio. Y luego usarrmdir.fuente
rm -r *con SFTP? No creo que sea posible.sftp(cliente de línea de comandos OpenSSH). Es posible con SFTP (protocolo), si tiene un cliente lo suficientemente inteligente.