我可以删除带有分号的文件吗?在其中(由更新创建?)

我可以删除带有分号的文件吗?在其中(由更新创建?)

我偶然发现了几十个文件中/usr/bin含有分号;。如果我没记错的话,这样的文件是在写入某个程序打开的文件时创建的(例如在操作系统更新期间)。但是,我认为这些会在下次重新启动时被删除。然而,就我而言,这些文件未打开:

# find /usr -name \*\;\* | grep c++
/usr/bin/c++;5cf64746
/usr/bin/c++;5cfffc10
/usr/bin/c++;5cfb88d7
/usr/bin/c++;5cf8e8e4
/usr/bin/c++;5cfcd91f
/usr/bin/c++;5cc1f485
/usr/bin/c++;5cf4f405
/usr/bin/c++;5cfffc85
/usr/bin/c++;5cf7968b
/usr/bin/c++;5cfe28b9
/usr/bin/c++;5cff80b7
/usr/bin/c++;5cf57b84
/usr/bin/c++;5cfc4cbf

# lsof | fgrep /c++ 
Exit 1

问题:

  1. 我可以安全地删除这些文件吗?

  2. 他们首先为什么来这里?

电脑从来没有死机过,都是干净重启。它是CentOS 7系统。更新已安装yum

许多文件实际上是相同的(尽管所有索引节点都不同,我检查过):

# ll /usr/bin/c++?5*
-rwxr-xr-x. 2 root root 772688 Mar  6  2018 /usr/bin/c++;5cc1f485
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf4f405
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf57b84
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf64746
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf7968b
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cf8e8e4
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfc4cbf
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfb88d7
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfcd91f
-rwxr-xr-x. 4 root root 772688 Apr 10  2018 /usr/bin/c++;5cfe28b9
-rwxr-xr-x. 4 root root 772720 May 15  2018 /usr/bin/c++;5cff80b7
-rwxr-xr-x. 4 root root 772720 May 15  2018 /usr/bin/c++;5cfffc10
-rwxr-xr-x. 4 root root 772720 May 15  2018 /usr/bin/c++;5cfffc85

更新的解释还有意义吗?

答案1

我已经找到了创建这些文件的原因。我有一个进程在容器中运行(具有 Linux 内核挂载(文件系统)命名空间),由火狱。 Firejail 会屏蔽某些文件(例如可执行文件和库),防止容器内的进程访问它们。因此,当这些文件被yum update/删除时,Linux 内核仍然会引用它们dnf update。因此,当时它们没有被删除。

这也意味着这些文件可以在重新启动后安全地删除 - 或者实际上,在最后一个使用它们的容器进程退出后。

问题仍然是为什么当容器/计算机关闭时这些文件没有被删除。我怀疑这是这些机器上的内核(ext4 文件系统驱动程序?)中未修复的错误。

相关内容