不知何故,在某些时候,我不小心在我的主目录中创建了一个名为'-s'的文件。它大约500 kb,我不知道它是否包含重要数据。我无法想出用这个文件做任何事情的任何方法,因为我用来尝试查看,复制或移动它的每个命令都将文件名解释为参数。
我试过把它放在引号中,用反斜杠转义,两者结合,似乎没什么用。
另外,当我第一次向同事提出这个问题时,我们对此感到困惑,直到有人最终无意中听到并问“为什么不重命名?”在我向他解释说cp和mv都认为文件名是一个参数所以它不起作用后,他说“不,不是从命令行,从Gnome做。”我羞怯地听从了他的建议,这很有效。但是,如果你没有窗口管理器并且命令行是唯一的选择,我仍然对你如何解决这个难题感兴趣。
答案 0 :(得分:69)
您可以使用./-filename
来引用它,或者某些命令可以让您在双击之后将其放入:
rm -- -filename
答案 1 :(得分:15)
你可以用以下方法摆脱它:
rm ./-s
rm
命令(至少在Ubuntu 10.04下)甚至告诉你:
pax@pax-desktop:~$ rm -w
rm: invalid option -- 'w'
Try `rm ./-w' to remove the file `-w'.
Try `rm --help' for more information.
有效的原因是因为rm
认为它不是一个选项(因为它不是以-
开头),但它仍然指的是当前目录中的特定文件
答案 2 :(得分:4)
您可以使用 - ,例如:
rm -- -file
答案 3 :(得分:0)
除了使用rm
之外,如果您了解某种语言,也可以使用它们。它们不受这种贝壳疣的影响。
红宝石(1.9 +)
$ ruby -rfileutils -e 'FileUtils.rm("-s")'
或
$ ruby -e 'File.unlink("-s")'