我不知怎么地最终得到了以下结果
ls -la
::
total 0
drwxrwxrwx 1 umain umain 4096 Jan 30 12:32 .
drwxr-xr-x 1 umain umain 4096 Jan 30 10:57 ..
-rw-r--r-- 0 umain umain 0 Jan 30 12:32 something.php
drwxrwxrwx 1 umain umain 4096 Jan 30 10:59 src
请注意,硬链接计数0
是something.php
。
同样地,stat something.php
:
File: something.php
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 2h/2d Inode: 2814749767170024 Links: 0
Access: (0644/-rw-r--r--) Uid: ( 1000/ umain) Gid: ( 1000/ umain)
Access: 2023-01-30 12:32:19.055876000 -0500
Modify: 2023-01-30 12:32:19.055876000 -0500
Change: 2023-01-30 12:32:19.055876000 -0500
Birth: -
无论我怎么尝试,我都无法删除它。sudo rm -f
告诉我我没有权限。sudo su | rm -f
也不起作用。我尝试在删除它之前将其设置为 777。没有运气。
我可以很好地编辑该文件,对其进行 cat 等等。就是无法删除它。
有没有办法彻底删除 inode
这是 WSL Windows 10 中的 Ubuntu 20.04。
答案1
我刚刚在 CentOS 机器上遇到了同样的问题。
@harrymc 的评论解决了这个问题,一个旧的过程正在使用该文件。
lsof | grep <filename>
查找进程kill <ps ID>
终止该进程,文件随即消失
可能该文件已被删除,但仍由进程访问。使用
lsof
以下命令检查文件是否正在使用:*lsof | grep something.php`。如果是这种情况,它将在重新启动后消失。 – harrymc 2023 年 1 月 30 日 21:01