видалити або перейменувати файл із символом \ r як


10

У мене є прискіпливий маленький файл, ім'я якого видається одним символом, і цей символ є \r

Як я можу видалити це?

Ось що я отримую з ls -bl:

-rw-rwxr--+   1 root             snapplewriters        0 Aug 29  2011 \r

ls -l просто відобразити його "?"


Як у вас навіть опинився такий файл?
mkaito

Відповіді:


16

Нам ls -liпотрібно отримати номер inode для файлу (перший стовпець), а потім використати його findдля видалення (при умові, що inode - 12345):

find . -inum 12345 -exec rm -i {} \;


Дякую - це надзвичайно корисно - я відчував, що має бути якесь однозначне посилання системи на файл, але не вдалося його знайти (все одно швидко).
Колін

1
Залежно від встановленої версії find, ви також можете це зробитиfind . -inum 12345 -delete
William Jackson

Для мене, чим більше це версія-агностик, тим краще. Але гарна пропозиція нічим. :)
Гаррет


5

Я б особисто дотягнувся до 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

Я думаю, у вас теж є кувалда на кухні? Про всяк випадок, коли вам потрібно зламати горіх? :-)
mivk

3

Ще один швидкий спосіб видалити файл, який називається, <carriage return>якщо ви використовуєте оболонку Bash:

$ rm <control-v><control-m>

2

Імена файлів з одним символом незвичні, і якщо у вас в каталозі немає інших таких файлів, ви можете спробувати це:

rm ?

Мені дуже лінь вчитися чи шукати, як цитувати дивних персонажів, тому я кілька разів використовував варіанти цього, коли мені застрягли файли зі складними іменами.


-1 Це відповідає всім файлам з одним ім'ям символів - Див. "Розширення імені Pathname" в man bash. Спробуйтеtouch a b c d $'\r'; rm ?
l0b0

1
@ l0b0: Так? Як я вже писав, односимвольні назви файлів незвичні. Цілком ймовірно, що в каталозі немає інших таких файлів, і в цьому випадку це працює. Інакше "rm -i?" може бути використано.
Томас Падрон-Маккарті
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.