unix 删除以双&和感叹号开头的文件

mec1mxoz  于 2023-04-29  发布在  Unix
关注(0)|答案(3)|浏览(269)

我有一个名为&& !!的文件
如何删除此文件?

On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    && !!
rm -- "&& !!"

结果:
rm:cannot remove '&& git st':没有这样的文件或目录
正如你可能已经猜到的,git st是我的git status的方式。
我是怎么到这里来的?
1.打开Vim

  1. :e && !!
  2. :wq
nqwrtyyt

nqwrtyyt1#

您的rm -- "&& !!"尝试失败,因为历史扩展用以前执行的命令替换了!!。您可以通过在单引号中引用文件名来避免这种情况,因为您不需要扩展内容:

rm -- '&& !!'

历史扩展经常让我感到困惑,而且我从未发现该功能的用途,因此我选择通过将set +H添加到.bashrc文件来禁用它。

3zwtqj6y

3zwtqj6y2#

像这样使用单引号:rm -- '&& !!' .
双引号扩展了它们的内容。

l5tcr1uw

l5tcr1uw3#

我建议使用

ls -i

然后使用以下命令删除受影响的文件,其中$inum是从列表中获得的inode编号。这将摆脱文件与任何奇怪的字符。

find . -maxdepth 1 -type f -inum $inum -delete

要小心的&符号,因为有时候黑客留下的文件与这些字符有命令的文件名中,希望有人会意外地执行它们。

相关问题