我不知道是什么创建了这个文件——我猜是一个糟糕的 shell 脚本。
它被称为'.env'$'\r'
我已经尝试过各种版本的rm
,以及使用 打开目录vim ./
、选择文件和 Shift-D 删除的技术。
这没有用,失败了
**warning** (netrw) delete(/root/squawker/.env) failed!
NetrwMessage [RO]
"NetrwMessage" --No lines in buffer--
如何删除这个讨厌的文件?
这是在 Ubuntu 20.04 上
在最近的 Linux 系统上(在大多数桌面发行版中使用 GNU 工具),
ls
使用 shell 的引用语法打印带有奇怪字符的名称。如果'.env'$'\r'
是这样ls
,文件的名称是.env<CR>
,其中<CR>
是回车符。如果你有一个带有 Windows 行尾的 shell 脚本,你可以得到它,例如whatever > .env
.这里的好处是
ls
there 的输出可以直接用作 shell 的输入。好吧,至少对于 Bash、ksh 和 zsh,而不是标准的 POSIX sh,比如 Debian/Ubuntu 的/bin/sh
、Dash。所以尝试一下
当然
rm -f .env?
也应该删除任何命名的东西.env
加上任何一个字符。现在,当然文件名也可能是字面意思,单引号和反斜杠是什么。但这更难偶然实现。即便如此,
rm -f *.env*
应该努力删除.env
名称中的任何内容。如果使用 GNU
find
,那么您可以通过 inode 将其删除。第一列中的数字是
inode
。如果存在文件名中包含字符串的其他人,请注意您实际想要的文件是什么env
。替换
<inode>
为实际的 inode 号。您可以删除该-exec
部分,以便在删除之前知道它正在返回您想要的文件。您还可以使用:
我有时会
-exec
出于习惯使用该位,但其中任何一个都有效。要求 shell 为名称中棘手的部分添加通配符,并要求
rm
为您记住它,这样您就不需要键入它。选择讨厌的文件名的一种快速而简单的方法是使用 shell 的自动完成功能。
键入
rm
,然后按 TAB 键,直到要删除的文件打印在屏幕上。