Відповіді:
Нам ls -li
потрібно отримати номер inode для файлу (перший стовпець), а потім використати його find
для видалення (при умові, що inode - 12345):
find . -inum 12345 -exec rm -i {} \;
find
, ви також можете це зробитиfind . -inum 12345 -delete
використовувати ANSI-C цитування: rm $'\r'
http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting
Я б особисто дотягнувся до Python:
>>> import os
>>> '\r' in os.listdir('.')
True
>>> os.unlink('\r')
Але ви також можете зробити це з оболонки, якщо ви розумієте, що втеча символів.
$ ls -b $'\r'
\r
$ rm -vi $'\r'
rm: remove regular empty file ‘\r’? y
removed ‘\r’
Імена файлів з одним символом незвичні, і якщо у вас в каталозі немає інших таких файлів, ви можете спробувати це:
rm ?
Мені дуже лінь вчитися чи шукати, як цитувати дивних персонажів, тому я кілька разів використовував варіанти цього, коли мені застрягли файли зі складними іменами.
man bash
. Спробуйтеtouch a b c d $'\r'; rm ?