Estaba borrando 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 uso rm -rf
para eliminarlo a través de la terminal
$ rm -rf folder/
rm: folder/: Directory not empty
Si uso ls -la
para verificar 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 uso sudo lsof +D folder/
para verificar si hay archivos abiertos
Nada vuelve al salir del programa.
Si uso Disk Utility para reparar (primeros auxilios) el disco y el volumen
Verificación de salud aprobada, 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
vuelvels: 03 - Ēlusion.mp3: No such file or directory
, igual querm -i *.mp3
.El archivo no aparece en Finder, es una parte confusa, cualquiera que sea el problema de visualización del nombre de archivo que pueda tener el Terminal (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 podía verlo, mientras que rm -i
es extraño con el nombre de archivo.
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 unidad externa)
fuente
ls -b
Muestra el archivo? Si es así, puedels -bi
obtener el inodo y seguir la respuesta a continuación, o alternativamente simplemente copiar el nombre del archivo en la-b
salida.ls -bi *.mp3
muestra el mismo resultado que se muestra en OP.Respuestas:
El problema parece ser causado por un archivo llamado 03 - Ēlusion.mp3 ubicado dentro de la carpeta llamada directorio .
Debido a que Terminal.app no puede representar marcas diacríticas en los nombres de archivo, bueno, lo es, pero eso está más allá del alcance de proporcionar la solución más simple para usted, oculta su falla al ocultar el nombre de archivo (algo que hasta ahora no había escuchado). ; ¿quizás los cambios de High Sierra a /.file, /.volfs e inodos de 64 bits? Espera, no importa; tu edición de tu pregunta me dice que te malinterpreté.) De todos modos, la existencia del archivo es conocida, junto con la ironía. afirmación del Buscador de que no existe. Obviamente lo hace. Aquí se explica 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 numérica del inodo proporcionada 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 cambiará a algo que el terminal pueda representar correctamente:
find . -inum 12345678 -exec mv {} deletemenow \;
- dándole el archivo "deletemenow" en la carpeta "folder", que puede desechar de la manera que más le convenga.
fuente
$ ls -i *.mp3
, vuelvels: 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?Me llevó mucho tiempo llegar a este resumen, pero creo que es la respuesta definitiva.
La causa de mi problema es bien conocida :
Históricamente (no tan antiguo, anterior a la era 10.11), OS X + HFS + aplica el formulario NFD en todos los nombres de archivo , y solo obtendrá resultados NFD de comandos y 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 cambia nuevamente: Apple decide que quiere normalizarse a NFD en la pantalla y las llamadas del sistema , pero deja los nombres de archivo originales tal como están (por lo tanto, NFC y NFD son compatibles, pero si selecciona el nombre de archivo en Finder o el
ls
resultado de la copia en Terminal, obtienes el formulario NFD).Todo esto es genial, hasta que coloque un archivo con nombre de archivo NFD en una unidad externa usando exFAT (ya que es el único formato cross-macOS / Windows con soporte de tamaño de archivo 4GB +): macOS 10.13 de alguna manera cree que su archivo debe estar en formato NFC, por lo que se salió.
De hecho, aquí hay una prueba rápida, tengo una carpeta en Windows en mi unidad exFAT con 3 archivos:
test.mp3
Ēlusion.mp3
(Ē
en NFC)03 - Ēlusion
(Ē
en NFD)(Puede copiar el Unicode exacto aquí )
Cuando los monte en mi macOS, esto es lo que veo:
y
ls -laib
resultado: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 está en llamas).
Pero, en primer lugar, qué pudo haber hecho que mi archivo de música usara el nombre de archivo NFD:
Podría haber copiado el archivo a través de una unidad de red o TeamViewer, y estaría bien, pero exFAT está activando este error en macOS.
Lecciones
fuente
Error 36
y haga una búsqueda en la web para algo como "mover archivos de Windows Mac al error 36" 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 Unicode y la separación de atributos dot_underscore, experimentaste un gran error doble. Dudo que el comando dot_clean tuviera alguna posibilidad.