Come rimuovere o rinominare una cartella con un nome "cattivo" su El Capitan?

3

Sul mio iMac ho una cartella, lasciata dai sistemi precedenti, chiamata "ZipIt 2.2.2␀". Non posso cancellarlo o rinominarlo, né cancellare i file che contiene, sia dal Finder che dal Terminale. Esaminando questa domanda e risposte correlate Comprendo che si tratta di un bug di Mac OS 10.11 (e versioni successive?), collegato alla presenza di NUL nel nome.

Non ho un vecchio Mac OS a portata di mano. Ho provato a rinominare la cartella con Onyx e A Better Finder Rename 10 ma senza successo. Ho anche provato ad avviare da Mac OS Recovery ma non ho potuto fare nulla di utile.

Qualche idea?

EDIT.

Ecco l'output che ricevo da Terminal quando utilizzi 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.

Ho pensato a una possibile via d'uscita, ma non so se è fattibile. Potrei creare un nuovo utente, trasferire la cartella incriminata sul suo desktop, quindi eliminare l'utente.

Pensi che questo potrebbe essere efficace? Mi piacerebbe provare, ma temo che questo potrebbe impiccare l'intero sistema.

EDIT 3

Come richiesto da Allan, ecco il contenuto dettagliato della cartella che non riesco a eliminare:

% 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
    
posta Aretino 11.06.2018 - 16:05
fonte

2 risposte

0

Prova a rimuoverlo tramite l'inode.

Per prima cosa, prendi l'inode:

$ls -li

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

L'inode è la prima colonna di numeri. Quindi usando quel numero, esegui il seguente comando:

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

Dove XXXXXXXXX è l'inode effettivo del file / directory che si desidera eliminare.

    
risposta data 11.06.2018 - 16:35
fonte
0

Usando la shell bash, puoi provare la funzione di completamento. Esempio

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"/

Digita rm -rf "this , premi il tasto TAB e bash farà il resto. Non dimenticare di chiudere ".

Per i file con nomi di file strani, puoi provare:

rm -- "<start typing filename and hit TAB key>"
    
risposta data 13.06.2018 - 19:21
fonte

Leggi altre domande sui tag