¿Cómo eliminar o renombrar una carpeta con un nombre “malo” en El Capitán?

3

En mi iMac tengo una carpeta, a la izquierda de los sistemas anteriores, llamada "ZipIt 2.2.2␀". No puedo eliminarlo ni cambiarle el nombre, ni eliminar los archivos que contiene, tanto desde el Finder como desde la Terminal. Mirando esta pregunta y las respuestas relacionadas, entiendo que esto es un error de Mac OS 10.11 (¿y más adelante?), conectado a la presencia del carácter NUL en el nombre.

No tengo un Mac OS antiguo a la mano. Intenté cambiar el nombre de la carpeta con Onyx y A Better Finder Rename 10 pero sin éxito. También intenté arrancar desde Mac OS Recovery pero no pude hacer nada útil.

¿Alguna idea?

EDIT.

Aquí está la salida que obtengo de la Terminal cuando uso find:

    % ls -li
    total 0
    1067625 drwxrwxrwx+ 6 root  wheel  204 25 Mag  2011 ZipIt 2.2.2␀

    % sudo find . -inum 1067625 -mount -exec rm -rf {} \;
    rm: ./ZipIt 2.2.2␀/.DS_Store: Invalid argument

[... many similar lines ...]

    rm: ./ZipIt 2.2.2␀: Invalid argument

EDIT 2.

Pensé en una posible salida, pero no sé si es viable. Podría crear un nuevo usuario, transferir la carpeta ofensiva a su escritorio y luego eliminar al usuario.

¿Crees que esto podría ser efectivo? Me gustaría intentarlo, pero me temo que esto podría colgar todo el sistema.

EDIT 3

Según lo solicitado por Allan, aquí está el contenido detallado de la carpeta que no puedo eliminar:

% find . -type d -name 'Zip*' -print0 | xargs -0 -J -t ls
./ZipIt 2.2.2␀:
Drop files here to zip (OS_X)   ZipIt.app
Read me.pdf

./ZipIt 2.2.2␀/ZipIt.app:
Contents    ZipIt

./ZipIt 2.2.2␀/ZipIt.app/Contents/Resources/ZipIt Help:
ZipIt Help idx  ZipIt help  faq     images
    
pregunta Aretino 11.06.2018 - 16:05

2 respuestas

0

Intenta eliminarlo a través del inodo.

Primero, consigue el inodo:

$ls -li

275505305 drwxr-xr-x   2 allan  staff    68B Jun 11 10:33 foobar

El inodo es la primera columna de números. Luego, utilizando ese número, ejecuta el siguiente comando:

$ find . -inum XXXXXXXXX -mount -exec rm -rf {} \; 

Donde XXXXXXXXX es el inodo real del archivo / directorio que desea eliminar.

    
respondido por el Allan 11.06.2018 - 16:35
0

Usando el shell bash, puedes probar la función de finalización. Ejemplo

Ravens-Claw:tmp garex$ mkdir "this\ is\ a\ bad\ folder\ with\ äü\ encoding"
Ravens-Claw:tmp garex$ ls -ltr | tail -1
drwxr-xr-x  2 garex  wheel   68 13 Jun 19:17 this\ is\ a\ bad\ folder\ with\ äü\ encoding
Ravens-Claw:tmp garex$ rm -rf "this\ is\ a\ bad\ folder\ with\ äü\ encoding"/

Simplemente escriba rm -rf "this , presione la tecla TAB y bash hará el resto. No te olvides de cerrar el ".

Para archivos con nombres de archivo extraños, puedes intentar:

rm -- "<start typing filename and hit TAB key>"
    
respondido por el Garex 13.06.2018 - 19:21

Lea otras preguntas en las etiquetas