Yanıtlar:
Bize ls -li
daha sonra, dosyaya (ilk sütun) için inode numarasını almak kullanmak find
silmek için (varsayarak inode 12345 ise):
find . -inum 12345 -exec rm -i {} \;
find
Yüklü sürüme bağlı olarak şunları da yapabilirsinizfind . -inum 12345 -delete
ANSI-C alıntı kullanın: rm $'\r'
http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting
Şahsen Python'a ulaşırdım:
>>> import os
>>> '\r' in os.listdir('.')
True
>>> os.unlink('\r')
Ancak kaçış karakterlerini anlarsanız bunu kabuktan da yapabilirsiniz.
$ ls -b $'\r'
\r
$ rm -vi $'\r'
rm: remove regular empty file ‘\r’? y
removed ‘\r’
Tek karakterli dosya adları olağandışıdır ve dizininizde başka böyle dosyalar yoksa, bunu deneyebilirsiniz:
rm ?
Öğrenmek ya da garip karakterleri nasıl alıntılayacağımı öğrenmek için çok tembelim, bu yüzden zor isimleri olan dosyalarla sıkıştığımda bunun çeşitli varyantlarını kullandım.
man bash
. İçindeki "Yol Adı Genişletmesi" . Deneyintouch a b c d $'\r'; rm ?