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énrsync
se 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 foo
vía SFTP.No ha especificado qué cliente SFTP está utilizando. Entonces supongo que OpenSSH SFTP (
sftp
).El comando
rmdir
en el cliente OpenSSH SFTP se asigna directamente a laSSH_FXP_RMDIR
solicitud del protocolo SFTP. La especificación SFTP para la versión 3 (la utilizada por OpenSSH) menciona específicamente que laSSH_FXP_RMDIR
operació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.