Verzeichnis mit komischem Namen kann nicht gelöscht werden

Verzeichnis mit komischem Namen kann nicht gelöscht werden

Beim Erstellen eines neuen Ordners habe ich nicht bemerkt, dass in BASH ' ein Sonderzeichen ist, was bedeutet, dass ich am Ende einen Ordner mit dem Namen

One Flew Over the Cuckoos\ Nest\ \(1975\)?quit?quit()?ls??????????

oder um genau zu sein

drwxrwxrwx    1 root     root             0 Mar  8 23:21 One Flew Over the Cuckoos\ Nest\ \(1975\)?quit?quit()?ls??????????

was mein Terminal ausflippen lässt: Die Tab-Vervollständigung findet es überhaupt nicht. Wenn ich versuche, es über seinen Inode zu öffnen, erhalte ich eine Fehlermeldung:

LibreELEC:/var/media/MYNAME/Films # rm -r "$(find -inum 187)"
rm: can't remove './One Flew Over the Cuckoos\ Nest\ \(1975\)
quit
quit()
ls': No such file or directory

Wie sehr habe ich es vermasselt?

Antwort1

Gelöst. Ich habe es geschafft, indem ich es über seinen Inode gelöscht habe, wie ich es im OP versucht hatte, jetzt aber mit der folgenden Zeile, die den Dateinamen vollständig umgeht:

find . -inum 187 -delete

für alle, die dies lesen, 187 sollte durch den Inode ersetzt werden, der überls -li

Antwort2

Sie können die interaktive Option in rm verwenden. Sie listet alle Dateien auf und fragt, ob Sie sie löschen möchten. Sie können also nur die Bits mit Platzhaltern versehen, die reine Tests sind:

rm -i *Flew*Cuckoo*Nest*

Das funktioniert nicht für rmdir. Wenn das Verzeichnis leer ist, können Sie:

rm -ir *Flew*Cuckoo*Nest*

Oder Sie können das Verzeichnis einfach in etwas umbenennen, das Sie eingeben können, vorausgesetzt, Sie finden genügend Übereinstimmungen, um eine Eindeutigkeit zu gewährleisten:

mv *Flew*Cuckoo*Nest* BetterCuckooName

verwandte Informationen