Estoy tratando de eliminar un montón de directorios que aparecen vacíos
amr@MacBook ~/folders> ls -la -R
total 24
drwxrwxrwx 6 amr staff 192 Mar 9 14:37 .
drwx---r-x+ 40 amr staff 1280 Mar 9 14:12 ..
-rw-r--r--@ 1 amr staff 10244 Mar 9 14:37 .DS_Store
drwxrwxrwx@ 5 amr staff 160 Feb 27 19:06 a
drwxrwxrwx@ 5 amr staff 160 Mar 9 14:01 b
drwxrwxrwx@ 3 amr staff 96 Feb 27 19:00 f
./a:
total 0
drwxrwxrwx@ 5 amr staff 160 Feb 27 19:06 .
drwxrwxrwx 6 amr staff 192 Mar 9 14:37 ..
./b:
total 0
drwxrwxrwx@ 5 amr staff 160 Mar 9 14:01 .
drwxrwxrwx 6 amr staff 192 Mar 9 14:37 ..
./f:
total 0
drwxrwxrwx@ 3 amr staff 96 Feb 27 19:00 .
drwxrwxrwx 6 amr staff 192 Mar 9 14:37 ..
amr@MacBook ~/folders> rm -r a b f
rm: a: Directory not empty
rm: b: Directory not empty
rm: f: Directory not empty
amr@MacBook ~/folders> rmdir *
rmdir: a: Directory not empty
rmdir: b: Directory not empty
rmdir: f: Directory not empty
con todas las formas posibles que pude encontrar como este , arranque en recovery y probando desde ahi , intente mv a USB y formatearlo con no me gusto tampoco y me salia el mismo mensaje "Directory not empty" hasta que encontre este Python script
import os, stat, shutil
def remove_readonly(fn, path, excinfo):
#removes readonly tag from files/folders so they can be deleted
if fn is os.rmdir:
os.chmod(path, stat.S_IWRITE)
os.rmdir(path)
elif fn is os.remove:
os.chmod(path, stat.S_IWRITE)
os.remove(path)
shutil.rmtree('/Users/amr/folders/'',
onerror=remove_readonly)
que me dio una nueva salida
OSError: [Errno 2] No such file or directory: 'folders/a/0c26d4c3daf0b26cd91366caf1df3eca0bad5611e9742a0f8b409d6b80fc6a53--pixman-0.38.0.mojave.bottle.tar.gz'
otro directorio
OSError: [Errno 2] No such file or directory: 'folders/b/libpixman-1.dylib'
la cosa es que esos archivos ya los borre manualmente cuando intente arreglar brew pero no pude borrar el directorio vacio
Actualización : Parece que de alguna manera he eliminado los archivos, pero no es atributo extendido y cuando trato de carpeta eliminada que trata de eliminar los archivos con su atributo, pero se encontró el atributo, pero no el archivo
sudo xattr -rc *
Password:
xattr: No such file: a/784a181552c10546bdab9595d963a36fa65d6e17cc04609285349cb81be623b9--harfbuzz-2.3.1.mojave.bottle.tar.gz.incomplete.lock
xattr: No such file: a/pixman.formula.lock
xattr: No such file: a/0c26d4c3daf0b26cd91366caf1df3eca0bad5611e9742a0f8b409d6b80fc6a53--pixman-0.38.0.mojave.bottle.tar.gz.incomplete.lock
xattr: No such file: b/libpixman-1.dylib
xattr: No such file: b/libpixman-1.a
xattr: No such file: b/libpixman-1.0.dylib
xattr: No such file: f/pixman
1 votos
Para borrar un archivo necesita permiso de escritura en el directorio, no en el archivo. Para depurar código necesitamos un ejemplo reproducabke es el código completo. Y para el código que pasa en una función a continuación, dividir a llamar a esa función no es un buen estilo. Por último, las preguntas de programación son para desbordamiento de pila, pero primero lea es faq y cómo hacer una pregunta, ya que esto falla de muchas maneras.
0 votos
Si quieres ayuda con la eliminación de archivos/directorios invisibles, por favor añade algunos detalles sobre el directorio, sus permisos, los mensajes de error que recibes, etc. Si quieres ayuda para depurar el código, por favor comenta o marca, entonces podemos mover la pregunta a StackOverflow.
0 votos
@Mark Depurar el código no es mi objetivo aquí, sólo lo usé con la esperanza de que va a arreglar mi problema, lo incluí porque me mostró nueva salida que nunca he visto antes, que es el "fantasma" de los archivos no existentes dentro de esta carpeta, esto es principalmente MacOS problema relacionado, no hay lógica para publicarlo en desbordamiento de pila Por último actualizado la pregunta con los permisos de carpetas y su contenido y la exacta Python script que utiliza, espero que me pueda ayudar
0 votos
@nohillside He actualizado el post con el permiso de las carpetas y la salida de error rm & rmdir , y no necesito depurar el código solo quiero mostrar su nueva salida de error
0 votos
¿Puede ejecutar también
ls -@d a b f
para mostrar los atributos extendidos de estos directorios? No es que crea que son la causa del problema, pero podrían dar una pista sobre el origen del problema.0 votos
drwxrwxrwx@ 5 amr staff 160 Feb 27 19:06 a com.dropbox.attributes 83 drwxrwxrwx@ 5 amr staff 160 Mar 9 14:01 b com.dropbox.attributes 83 drwxrwxrwx@ 3 amr staff 96 Feb 27 19:00 f com.dropbox.attributes 83
debecom.dropbox.attributes
¿Significa algo?0 votos
Si su objetivo es solucionar el problema, elimine el código y haga hincapié en el problema. Sospecho que este código da más problemas de los que resuelve y desconfiaría mucho de los consejos que provengan de él.
0 votos
@Mark no estoy seguro de entender lo que estás tratando de decir, creo que este código podría ser muy útil para el que lo entienden, porque de alguna manera muestran que el cuando estoy tratando de eliminar la carpeta, que tratan de eliminar su interior archivos, pero no puede porque ya se ha eliminado
0 votos
¿Estas carpetas forman parte actualmente, o lo han hecho antes, de tu cuenta de Dropbox?
0 votos
@nohillside no eran parte de la carpeta de cerveza
/usr/local/
0 votos
Creo que el código tiene varios problemas y no ayuda.
0 votos
Un directorio vacío debería mostrar un recuento de enlaces de 2. Sus directorios (a, b, f) muestran un recuento de enlaces superior a dos. Su sistema de ficheros es inconsistente.