
我偶然發現了幾十個文件中/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
問題:
我可以安全地刪除這些文件嗎?
他們首先為什麼要來這裡?
電腦從來沒有當機過,都是乾淨重開機。它是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 檔案系統驅動程式?)中未修復的錯誤。