我想删除一个网站的备份(使用 FTP 镜像wget
),但只有一个文件,名为js_composer.less
resists。我可以在同一目录中创建新文件并删除它们,因此问题可能出在文件本身上。
不可能强制删除:
$sudo rm -f js_composer.less
rm: cannot remove 'js_composer.less': Operation not permitted
我无法改变它权限:
$sudo chmod 644 js_composer.less
chmod: changing permissions of 'js_composer.less': Operation not permitted
我无法改变它所有者:
$sudo chown myuser:mygroup js_composer.less
chown: changing ownership of 'js_composer.less': Operation not permitted
我无法列出文件的属性:
$sudo lsattr js_composer.less
lsattr: Operation not supported While reading flags on js_composer.less
从ls
我可以看出它是一个命名管道(FIFO),粘着位(限制删除标志)已应用:
p-ws-wS--t 41284 30917 5212 3944510081 márc 14 1902 js_composer.less
现在我找不到任何方法可以删除此文件。我还能尝试什么?
答案1
这是一个具有无意义的权限和 41284 个硬链接的项目。它是一个命名管道,据称大小为 3.7 GiB,比命名管道应有的大小大 3.7 GiB(它不应该是首先是一个命名管道)。
这表明您不应该尝试删除它 - 相反,您应该fsck
针对分区运行并让它修复它能找到的任何文件系统损坏。然后您也许可以简单地删除坏文件。
如果这发生在你的根文件系统上,请使用内核选项重新启动fsck.mode=force
。如果文件系统是独立的(例如,你有一个独立的 /home 分区),你也可以重新启动进入恢复模式并fsck <device>
手动运行。
检查完成后,尝试重新启动进入正常模式并再次删除该文件。
最后,如果没有其他帮助,大多数文件系统都有“debugfs”类型的工具,可以直接编辑和删除 inode 和目录条目,绕过内核的文件系统代码。例如,ext4 有debugfs
,XFS 有xfs_db
。使用它们将是一个单独的线程......