Невозможно удалить каталог со странным именем

Невозможно удалить каталог со странным именем

При создании новой папки я не осознавал, что в BASH ' — это специальный символ, поэтому у меня получилась папка с именем

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

или, если быть точным,

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

что сводит мой терминал с ума: автодополнение Tab вообще его не находит. Если я попытаюсь открыть его через его inode, то получу ошибку:

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

Насколько сильно я облажался?

решение1

Решено. Я сделал это, удалив его через его inode, как я пытался в OP, но теперь использую следующую строку, которая вообще обходит имя файла:

find . -inum 187 -delete

для тех, кто это читает, 187 следует заменить на inode, найденный черезls-ли

решение2

Вы можете использовать интерактивную опцию в rm. Она выведет список каждого файла и спросит, хотите ли вы удалить его. Так что вы можете использовать подстановочные знаки только для тех битов, которые являются простыми тестами:

rm -i *Flew*Cuckoo*Nest*

Это не работает для rmdir. Если каталог пуст, вы можете:

rm -ir *Flew*Cuckoo*Nest*

Или вы можете просто переименовать каталог, назвав его так, чтобы его можно было ввести, при условии, что вы сможете найти достаточно совпадений для обеспечения уникальности:

mv *Flew*Cuckoo*Nest* BetterCuckooName

Связанный контент