Unidad externa, no se puede vaciar la papelera, rm ve un archivo, pero ls -la no

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 -rfpara eliminarlo a través de la terminal

$ rm -rf folder/
rm: folder/: Directory not empty

Si utilizo ls -lapara 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 *.mp3devuelve 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 -ibno, 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 -lano pude verlo, ¿mientras que el nombre del rm -iarchivo es extraño?

get infoa 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)

¿Ha considerado hacer una copia de seguridad de todas las cosas que desea (probablemente ya haya hecho una copia de seguridad de todos modos) y luego volver a formatear por completo esa unidad para comenzar de nuevo?
¿ ls -bMuestra el archivo? Si es así, puede ls -biobtener el inodo y seguir la respuesta a continuación, o simplemente copiar el nombre del archivo en la -bsalida.
Creo que el problema central no es con el nombre del archivo, ls -bi *.mp3muestra el mismo resultado que se muestra en OP.

Respuestas (2)

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, cdal 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.

Wow, eso es un error impresionantemente terrible.
No creo que esto sea exacto. El terminal puede ocultar caracteres individuales que no puede representar, pero no eliminará toda la línea de texto.
@duskwuff De cualquier manera, parece que el nombre del archivo está causando problemas, por lo que esta es una solución potencial independientemente.
Lo siento, pero el problema parece más complejo que esto: lo intenté $ ls -i *.mp3, vuelve ls: 03 - Ēlusion.mp3: No such file or directory.
Ah, desafortunado. Bueno, ya que A.) Intentar colocar el directorio llamado "carpeta" en la Papelera da como resultado una advertencia de que el elemento está "en uso" B.) Que el archivo que contiene se informa como de 0 bytes de longitud (ya ha sido borrado, en su mayoría), y C.) que la unidad externa está formateada Ex-Fat, diría que la siguiente solución simple sería conectar la unidad a una computadora con Windows y probar los enfoques obvios una vez que el volumen se haya montado. Bueno, es simple si tiene acceso inmediato a una computadora con Windows, es decir...
¿Puede simplemente ejecutar ls -identro del directorio para evitar que interfiera la expansión del comodín de shell?
@nohillside seguro, y no devuelve absolutamente nada, incluso con ls -ib, actualizaré la pregunta.
@DocG. Sí, probaré con Windows algún día...
@duskwulff: habría dicho exactamente lo mismo hace algunos meses, y después de ver la edición realizada en la pregunta original, ahora volveré a estar de acuerdo con usted: al momento de escribir mi respuesta, pensé que no significaba ningún nombre de archivo Estaba viendo algunas consecuencias de APFS como aquí: eclecticlight.co/2017/04/05/… y aquí: eclecticlight.co/2017/04/06/…
Muy bien, probé esto con Windows 10, y sí funcionó, se muestra el archivo mp3 y tiene su recuento de bytes original (también puedo reproducirlo). Sentí curiosidad y copié/cambié el nombre del mismo archivo con un nombre como 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.
No estoy seguro de si desea editar su respuesta o debo enviar una yo mismo :)
Adelante... no necesitabas mi comentario sobre "la siguiente solución simple" para pensar en conectar una computadora cuyo sistema de archivos nativo coincida con el de tu disco externo...
¿Esperar lo? ¿El archivo está INTACTO? je. Tonos de 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.
@Doc G. Tengo otra explicación, pero me llevará 5 minutos hacer una redacción rápida, espere

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 lsresultado 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:

ingrese la descripción de la imagen aquí

  • 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:

ingrese la descripción de la imagen aquí

y ls -laibresultado:

$ 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?

  • Originalmente descargué este archivo de música en 10.9/10.10 con una Mac más antigua, que aplica el nombre de archivo NFD.
  • En algún momento, los muevo a una unidad Windows + NTFS, que no aplica NFC/NFD, por lo que se conserva el nombre de archivo NFD original.
  • Ahora quiero volver a mover este archivo a mi macOS 10.13 + APFS usando una unidad exFAT (exFAT admite la misma convención UTF-16 que NTFS).
  • El infierno se desatará.

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:

  • El nombre de archivo Unicode sigue siendo una amenaza.
  • En realidad, necesita Windows/Linux para solucionar este problema (si la situación es que su archivo está en una unidad externa exFAT).
@bitlinn: Haga clic en el segundo enlace de mi comentario dirigido a sunsetwulff y pruebe la herramienta de normalización Unicode de Apfelstrudel que encontrará allí. Muy útil para APFS, inútil con exFAT. O es eso...?
@DocG. este problema es un poco más complejo de lo que pensé inicialmente, ¡pero he actualizado mi respuesta nuevamente!
Sí, pensé que podrías terminar haciendo eso. Consulte mi comentario anterior sobre Error 36y 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.