Estaba limpiando una carpeta de música en mi disco externo y encontré un directorio que no puedo eliminar sin importar lo que intente.
Si lo pongo en la papelera a través de GUI
La operación no se puede completar porque el elemento "carpeta" está en uso.
Si lo uso rm -rf
para eliminarlo a través de la terminal
$ rm -rf folder/
rm: folder/: Directory not empty
Si utilizo ls -la
para comprobar su contenido
$ ls -la
total 512
drwxrwxrwx 1 user staff 131072 Jan 3 2017 .
drwxrwxrwx 1 user staff 131072 Jan 3 2017 ..
Si uso rm -i *
dentro de la carpeta
$ rm -i *
rm: 03 - Ēlusion.mp3: No such file or directory
Si utilizo sudo lsof +D folder/
para comprobar si hay archivos abiertos
Nada regresa al salir del programa.
Si uso la Utilidad de disco para reparar (primeros auxilios) el disco y el volumen
Se pasó la verificación de estado, por lo que no se inició ninguna reparación.
Si reinicio macOS
El problema persiste.
Información adicional:
Puedo mover la carpeta dentro de la unidad, pero no a otra unidad.
Puedo cambiar el nombre de la carpeta.
ls -i *.mp3
devuelve ls: 03 - Ēlusion.mp3: No such file or directory
, igual que rm -i *.mp3
.
El archivo no aparece en Finder, esa es una parte confusa, cualquiera que sea el problema de visualización de nombre de archivo que Terminal podría tener (siempre lo configuro para usar Unicode - UTF-8
), creo que hay más fuerza en juego.
En respuesta a las preguntas, ls -ib
no, no devuelve nada.
$ ls -i
$ ls -ib
$ ls -laib
total 512
2762318 drwxrwxrwx 1 user staff 131072 Jan 3 2017 .
2685260 drwxrwxrwx 1 user staff 131072 Jan 3 2017 ..
Entonces, aparentemente hay algo en él pero ls -la
no pude verlo, ¿mientras que el nombre del rm -i
archivo es extraño?
get info
a través del menú contextual de la GUI confirmó que hay 1 elemento en la carpeta, pero con cero bytes, y ciertamente no aparece en el buscador.
No estoy seguro de qué hacer en este momento. ¡Ayuda muy apreciada!
(Usando 10.13.4 + ExFAT en un disco externo)
El problema parece ser causado por un archivo llamado 03-Ēlusion.mp3 ubicado dentro del directorio llamado carpeta .
Debido a que Terminal.app no puede representar marcas diacríticas en los nombres de los archivos, bueno, lo es, pero eso está más allá del alcance de brindarle la solución más simple, oculta su falla al ocultar el nombre del archivo (algo inaudito por mí hasta ahora ; ¿Quizás son los cambios de High Sierra a /.file, /.volfs e inodos de 64 bits? Espere, no importa; su edición a su pregunta me dice que no lo entendí.) De todos modos, se conoce la existencia del archivo, junto con la irónica afirmación del Finder de que no existe. Obviamente, lo hace. He aquí cómo cambiar eso:
Primero, determine el número de inodo del archivo. En Terminal.app, cd
al directorio "carpeta" y emita este comando:ls -i *.mp3
Copie la cadena de números del inodo proporcionado en la columna de la izquierda de la respuesta, que será algo así como
12345678 03 - E ̄lusion.mp3
--y colóquelo en este comando, que lo renombrará a algo que la terminal pueda representar correctamente:
find . -inum 12345678 -exec mv {} deletemenow \;
--dándote el archivo "deletemenow" en la carpeta "folder", de los cuales puedes disponer de la forma que más te convenga.
$ ls -i *.mp3
, vuelve ls: 03 - Ēlusion.mp3: No such file or directory
.ls -i
dentro del directorio para evitar que interfiera la expansión del comodín de shell?ls -ib
, actualizaré la pregunta.test.mp3
. Y se muestra correctamente en el buscador/terminal de macOS. Voy a fijar esto en un problema de compatibilidad con exFAT en macOS.dot_clean
. ¿Te suena la frase "Error 36"? No, no respondas a eso; agua bajo el puente. Sin embargo, considere editar el título de su publicación para incluir "ExFAT Drive" para ayudar a aquellos con problemas similares.Me tomó mucho tiempo llegar a este resumen, pero creo que es la respuesta definitiva.
La causa de mi problema es bien conocida :
OS X es el extraño, tanto porque normaliza los nombres de los archivos como porque usa NFD en lugar del NFC más común .
Históricamente (no tan antiguo, era anterior a 10.11), OS X + HFS+ aplica el formato NFD en todos los nombres de archivo , y solo obtendrá el resultado NFD de los comandos y las llamadas al sistema.
Luego, las cosas comienzan a cambiar, en 10.11, algunos resultados de llamadas al sistema se normalizan a NFC , lo que lo pone en línea con Windows y Linux, pero a expensas de romper algunos programas que esperan NFD en OS X.
Pero desde la introducción de macOS 10.13 + AFPS, el comportamiento vuelve a cambiar: Apple decide que quiere normalizar a NFD en la pantalla y las llamadas del sistema , pero deja los nombres de archivo originales como están (por lo que tanto NFC como NFD son compatibles, pero si selecciona el nombre del archivo en el Finder o el ls
resultado de la copia en la Terminal, obtendrá el formulario NFD).
Todo esto es genial, hasta que coloque un archivo con el nombre de archivo NFD en una unidad externa usando exFAT (ya que es el único formato cruzado de macOS/Windows compatible con un tamaño de archivo de más de 4 GB): macOS 10.13 de alguna manera cree que su archivo debe estar en formato NFC, así que se estropeó.
De hecho, aquí hay una prueba rápida, tengo una carpeta en Windows en mi disco exFAT con 3 archivos:
test.mp3
Ēlusion.mp3
( Ē
en NFC)03 - Ēlusion
( Ē
en DNF)(Puedes copiar el Unicode exacto aquí )
Cuando los monto en mi macOS, esto es lo que veo:
y ls -laib
resultado:
$ ls -laib
total 46592
2762318 drwxrwxrwx 1 user staff 131072 Jan 3 2017 .
2685260 drwxrwxrwx 1 user staff 131072 Jan 3 2017 ..
1572961 -rwxrwxrwx 1 user staff 11672464 Aug 23 2014 Ēlusion.mp3
1572871 -rwxrwxrwx 1 user staff 11672464 Aug 23 2014 test.mp3
Como puede ver, el archivo NFC está presente pero falta el archivo NFD.
Incluso si conoce el problema de NFC/NFD en OS X , es posible que no espere que la unidad externa exFAT enfrente este problema de la manera opuesta (NFC está bien, pero NFD es pant-on-fire).
Pero, ¿qué podría haber causado que mi archivo de música usara el nombre de archivo NFD en primer lugar?
Podría haber copiado el archivo a través de una unidad en red o TeamViewer, y estaría bien, pero exFAT está provocando este error en macOS.
Lecciones:
Error 36
y realice una búsqueda en la web de algo como "mover archivos de un lado a otro error 36 de Windows Mac" para obtener más información sobre cómo separar las atribuciones de archivos en sistemas que no son HFS. Este ha sido (otro) problema conocido de nombres de archivos de MacOS / OS X desde que llegó el Sistema 10.6. Entre la normalización de Unicode y la separación de atributos dot_underscore, experimentó un gran error doble. Dudo que el comando dot_clean tuviera alguna posibilidad.
micro solar
Reid
ls -b
Muestra el archivo? Si es así, puedels -bi
obtener el inodo y seguir la respuesta a continuación, o simplemente copiar el nombre del archivo en la-b
salida.bitinn
ls -bi *.mp3
muestra el mismo resultado que se muestra en OP.