删除或重命名以 \r 作为文件名的文件

Col*_*lin 10 linux bash filesystems

我有一个讨厌的小文件,它的名字似乎是单个字符,而那个字符是 \r

我怎样才能删除这个?

这是我得到的ls -bl

-rw-rwxr--+   1 root             snapplewriters        0 Aug 29  2011 \r
Run Code Online (Sandbox Code Playgroud)

ls -l 只是显示它“?”

Gar*_*ett 16

我们ls -li获取文件的 inode 编号(第一列),然后使用find删除它(假设 inode 为 12345):

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


Jos*_*Lee 5

我个人会接触 Python:

>>> import os
>>> '\r' in os.listdir('.')
True
>>> os.unlink('\r')
Run Code Online (Sandbox Code Playgroud)

但是,如果您了解转义字符,您也可以从 shell 执行此操作。

$ ls -b $'\r'
\r
$ rm -vi $'\r'
rm: remove regular empty file ‘\r’? y
removed ‘\r’
Run Code Online (Sandbox Code Playgroud)