当我尝试删除linux-raspi-headers-5.4.0-1032
以升级它时,dpkg
出现一个关于文件名太长的奇怪错误:
(Reading database ... 237046 files and directories currently installed.)
Removing linux-raspi-headers-5.4.0-1032 (5.4.0-1032.35) ...
dpkg: error processing package linux-raspi-headers-5.4.0-1032 (--purge):
unable to securely remove '/usr/src/linux-raspi-headers-5.4.0-1032/arch/arm/include/asm/mach/p��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������': File name too long
Errors were encountered while processing:
linux-raspi-headers-5.4.0-1032
我该如何度过这一难关?
答案1
这里的大图首先显示我们要删除的文件的 inode,然后在运行删除命令时指定该 inode
sudo -i # become root to remove root owned file
# get into dir of file we wish to delete
cd /usr/src/linux-raspi-headers-5.4.0-1032/arch/arm/include/asm/mach/
ls -la -i # parm -i says to show inode values
现在查看上面的输出以确定所选文件的 inode 值,该值显示在最左边的列中...假设 6561977 是您要删除的文件的 inode 值...然后要删除该文件,请使用其 inode 指定
find . -maxdepth 1 -type f -inum 6561977 -delete
在上面将 6561977 替换为显示的实际 inode 值...注意find
命令的第一个参数是操作的目录...这里我们给它一个句点,表示当前目录,这是可以的,因为我们发出cd
命令进入相关文件的父目录
ls -la -i # list directory again to confirm file has been zapped