我的主目录中有一个奇怪的文件,名称不可能

我的主目录中有一个奇怪的文件,名称不可能

几天前我的主目录中出现了一个奇怪的文件:

在此输入图像描述

ls在 bash 中给我以下输出:

Âõ(\'e@\Âõ(\7@\Âõ(,e@ëQ¸[email protected]

在 中fishls默认情况下引用名称 shell-safe 并给我这个:

''$'\217\302\365''(\'\''e@\'$'\217\302\365''(\7@\'$'\217\302\365''(,e@'$'\037\205\353''Q'$'\270\036''[email protected]'

我无法在 Dolphin 中删除该文件,因为它似乎不存在。我猜想 Dolphin 中存在一个错误,它无法使用这样的病态文件名。我设法通过rm命令行和制表符补全删除它。

这个文件可能来自哪里?我在 Fedora 25 上使用带有 LUKS 加密的 EXT4 文件系统。该分区有点旧,我是在 2015 年 10 月 20 日(大约那个月)创建的。这是我应该担心的事情吗?

答案1

这将显示文件的索引节点:

ls -lai

比你可以删除它:

find . -type f -inum (inode)

...但我建议先检查文件中的内容。尝试file对其执行:

find . type f -inum (inode) -exec file {} \;

比你可以用vim同样的方式打开它。

答案2

这个文件可能来自哪里?

您在这里要求纯粹的猜测,但只有一种可能的路径是文件系统或终端数据流损坏。

文件系统损坏的一个示例是存储文件名的磁盘块以某种方式损坏,但其所有校验和都匹配。 (如果没有最后一项规定,文件系统将简单地拒绝检索损坏的数据。)这可能是由于 RAM 故障、硬盘驱动器故障、布线不可靠、宇宙射线......而发生的。

终端数据流损坏的一个例子是使用 RS-232 串行线路(或模拟它的线路)或与 RS-232 同期的相对宽容的协议之一,例如调制解调器

Zmodem 在 SSH 时代仍然很方便,scp因为它通过您已有的连接窃取文件数据;您不必以某种方式将 SSH 连接切换到 SCP 模式或建立单独的 SCP 连接。这lrzsz包裹可以自然地与 SSH 和 Unix 命令行配合使用。

当通过两个或多个主机的链进行 SSH 连接时,Zmodem-over-SSH 特别方便,但有一个陷阱。如果您使用默认rz选项尝试通过链接将 Zmodem 转换为二进制文件,则文件中的某些字节序列可能会被视为转义序列或者控制字符由中间 SSH 主机没有意识到它正在中继 Zmodem 传输,导致它误解数据流,从而破坏 Zmodem 传输。 (顺便说一句,修复方法是使用rz -e强制转义控制字符。)

当发生类似的情况时,正在进行的数据流会被误解,因此数据传输会突然变成对 shell 的命令,并且如果该命令流中的某些内容恰好与真实命令匹配(例如cat > h34ijth34u8934),shell 会创建一个文件一个垃圾名字。就外壳而言,您要求它这样做。 shell 不知道“键入的”文件名的来源是在与其通信的sz本地程序死机后向其喷射文件数据的远程程序。rz

(是的,这实际上发生在我身上多次。)

这是我应该担心的事情吗?

这取决于事情是如何发生的,这再次需要猜测。

相关内容