76b20f8216772046235705239e7741 Powered by .NET 7.0 on Kubernetes s 属性设置之后,如果文件被删除,将从硬盘删除 S 属性设置之后,文件将同步写入硬盘(一般为异步) u 属性设置之后,文件删除后数据内容还存在磁盘中,可以找回文件 e 代表该文件为可执行文件 详细说明请参考 chattr chattr 用于修改文件属性,该命令请切换至 root 用户下使用,如果是 ubuntu 用户可在命令前加 sudo 进行修改 # 为 file.sh 文件增加 i 标识chattr +i file.sh# 为 file.sh 文件去除 i 标识chattr -i file.sh# 为 file.sh 增加 i, a 两个标识chattr +ia file.sh# 为 file.sh 文件移除 i, a 两个标识chattr -ia file.sh 详细作请参考: 实际作 由上文中得知当文件设置 i 和 a 任意一个属性我们就无法对文件进行删除作,那么我们首先移除 i, a 属性,然后执行删除: # 移除 i, a 属性chattr -ia file.sh# 查看是否移除成功lsattr file.sh# 移除文件rm -rf file.sh 如果文件还未删除成功,则我们需要考虑文件所属的文件夹是否设置了 i 或 a 属性(这一点确实很难发现) # 退回上一级cd ..# 直接使用 lsattr 命令,这样可以列出当前文件夹下所有文件和文件夹的属性# 不要使用 lsattr 文件夹 这样的语法,这样是列出该文件夹下的文件的属性lsattr 如果文件夹被设置则对文件夹的属性执行移除作,然后再删除文件夹里面的文件 收获 虽然 lsattr 和 chattr 是在这次清除的过程中发现的,但是通过了解文件属性,发现我们在实际的工作中可以通过文件属性来保护重要的文件避免被误删,以及确保误删后能够恢复文件。 对于文件的作后如果还是没有效果,我们可以尝试从文件夹入手解决。 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思 1、删除文件夹实例: rm -rf /var/log/d/access 将会删除/var/log/d/access目录以及其下所有文件、文件夹 2、删除文件使用实例: rm -f /var/log/d/access.log 将会强制删除/var/log/d/access.log这个文件