我在 Ubuntu 机器上使用终端,有一个文件我想删除。文件的名称是\
(只是一个反斜杠)。
现在我通常只会做
rm filename
但是如果我rm \
这样做,它会认为我正在尝试编写多行命令。
我该如何删除这个文件?我知道我可以使用 GUI 文件系统,但效率不高。
那么,我怎样才能(在终端中)删除一个名为的文件\
?
答案1
使用rm \\
(用另一个反斜杠转义反斜杠)。请注意,对于名为的目录,这也以类似的方式工作\
(使用rmdir
或rm
带有-r
标志)。
例子:
>mkdir 演示 >CD 演示 >触摸 \\ >ls-l 共 0 -rw------- 1 hennes 用户 0 7月29日 20:25 \ >rm \\ >ls-l 共 0
答案2
手动删除名称中含有奇怪字符的文件的一般策略是
rm -i ./*
这将提示您选择是否删除目录中的每个文件。
答案3
您还可以通过引用文件的 inode 来取消链接
linus ~/test $ touch \\
linus ~/test $ ls -li
total 0
15204561 -rw-r--r-- 1 pat sudo 0 Jul 29 23:03 \
linus ~/test $ find . -inum 15204561 -exec rm -v {} \;
removed `./\\'
linus ~/test $ ls -li
total 0
linus ~/test $
答案4
请先检查文件的 inode。ls -li
137791 -rw-rw-r--. 1 svr svr 366 3月 11 15:57
“\”的inode为“137791,然后使用find命令删除带有inode编号的“\”。
查找 . -inum 137791 -exec rm -i {} \;
rm:删除常规文件“./\”?是
然后“\”将被删除。