我以某种方式设法创建了一个似乎没有文件名的文件。我在下面找到了一些有关如何获取文件的更多详细信息的信息线。
但是,我尝试了列出的一些建议,但似乎无法删除该文件。我不确定我做了什么来创建它,但它是在尝试复制 xml 文件时发生的。
该文件的一些信息如下;
> ls -lb
total 296
-rw-r--r-- 1 voyager endeavor 137627 Jan 12 12:49 \177
> file *
: XML document
> ls -i
417777
我尝试找到使用 inum 开关,然后将其通过管道传输到 rm ,因为这似乎是摆脱它的最简单的方法。但是,下面链接的线程底部给出的示例对我来说失败了。例子是:
> find -inum 41777 -exec ls -al {} \;
find: illegal option -- i
find: [-H | -L] path-list predicate-list
所以我首先尝试使用路径列表,如下所示,但这也不起作用:
> find . -inum 41777 -exec ls -al {} \;
我不确定不可打印的字符 \177 是什么,或者如何将其传递给命令rm
,但我真的想确保在尝试删除此文件时不会弄乱任何其他文件/目录。
答案1
该文件有一个名称,但它由不可打印的字符组成。如果您使用 ksh93、bash、zsh、mksh 或 FreeBSD sh,您可以尝试通过指定其不可打印的名称来删除它。首先确保名称正确:ls -ld $'\177'
如果显示正确的文件,则使用 rm:rm $'\177'
另一种(风险更大)的方法是使用rm -i -- *
.使用 -i 选项 rm 需要在删除文件之前进行确认,因此您可以跳过除该文件之外的所有要保留的文件。
祝你好运!
答案2
对于那些使用vim
在当前工作目录中运行它的人:
$ vim ./
并使用箭头键或导航到该文件j/k
。然后点击Shift+D
并确认删除y
。
答案3
可能有一种方法可以将文件名传递给rm
,但如果您担心弄乱任何东西,您可以使用 GUI 文件管理器。 Emacs 附带一个目录编辑模式,如果您安装了它,就可以使用它:
打开文件夹中的
emacs
.您可以运行emacs /path/to/folder
,或者打开 emacs,点击Esc+ x,然后运行dired
,这将提示输入路径移动到要删除的文件所在的行,然后按d。您应该
D
在文件旁边的左边看到一个:按x保存您的更改。它会提示您确定要删除该文件;按y:
答案4
您已经演示了file *
shell glob ( *
) 能够获取此文件,因此现在只需rm
对该 glob 执行操作即可。
- 更改到文件所在的目录。
- 跑步
rm -i *
- 输入
n
除文件名看似不可见的文件之外的所有文件