zoukankan      html  css  js  c++  java
  • linux删除不了文件, 修改文件属性也删除不了的一个解决思路

    场景:

      公司要求卸载软件时, 也包含卸载一个目录下的所有文件. 于是去修改删除文件的shell脚本, 添加了删除文件及文件夹的命令(当然是在root权限下的)

      如: rm -rf /home/vito/****

      但发现运行shell脚本时, 死活删除不了那个目录下的文件, 当然也就删除不了目录, 同时提示----rm: cannot remove '/home/vito/****/xxx.xxx': Permission denied.

      在网上查了一下, 说这种情况下, 一般都是该文件被设置了一些不可删除的属性, 如图:

      

      可以通过命令lsattr filename, 查看文件所以具有的属性, 从上图也可以看出, 这个文件具有 i 和 a 属性, 至于这些字母代表什么意思, 可以参考这个连接

      http://www.cnblogs.com/JasonYangBlogs/p/4833896.html(虽然通过linux命令: man chattr, 也可以看到英文版本, 不过中文版理解起来更快一些)

      a :设置a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性。

      i :它可以让一个文件不能被删除、改名,设置连接也无法写入或添加数据。只有root才能设置这个属性。

      因此, 这个file1具有这两个隐藏属性后, 直接使用rm命令是无法删除这个文件的.

      那怎么办呢, 很简单, 通过chattr命令, 修改这两个文件的属性后, 就可以正常删除了.

      命令为: chattr -ia ./file1

        这里 '-' 的意思表示去除, 同理, "+" 表示设置文件的属性, 如图

      

      --------------------------------------------- 分割线---------------------------------------------

    新情况, 即使取消了无法删除的属性, 依然无法删除文件

      如图:

      

      这是为什么, 明明删除去除了文件的不可删属性, 怎么还是删除不了文件, 连root用户都删除不了, 那还有其它用户可以删除么???  

      答案是不可能, 如果连root用户都删除不了的文件, 其它用户更不可能删除得了, 因此只能是其它问题引起的, 当时想了很久, 一直没有明白为什么会删除不了, 网上也没有找到想要的答案, 就这样一直耗着.

      后来, 请教别人的时候, 看到别人会查看文件夹的隐藏属性, 实然之间, 就明白是什么回事了.

      --------------------------------------------- 分割线 -------------------------------------------

    问题的解决

      其实这个问题很简单, 就是因为当前文件的文件夹(目录)的隐藏属性是不可删除的, 因此当你要删除文件夹(目录)下面的文件时, 系统也会提示文件不可删除, 权限不足.

      如图

      

      file2文件在文件夹(目录)dir1下, 虽然file2文件已经去掉了不可删除属性, 但因为其所在的文件夹(目录)的属性也是不可删除, 最终, file2文件也因此无法删除!!!!

      解决的办法就是将当前文件所在的文件夹(目录){有时候可能不止一层文件夹(目录)被设置成了不可删除属性}的不可删除属性去掉即可, 若是有多层文件夹(目录)都具有不可删除属性, 那就需要保证每层的不可删除属性都去掉了, 之后就可以删除那一直以来删除不了的文件了

      如图:

      

  • 相关阅读:
    x5开源库后续知识点
    仿抖音上下滑动分页视频
    Sp效率分析和理解
    ARCGIS 数据格式
    arcEngine开发之activeView.PartialRefresh(译)
    arcEngine开发之查询的相关接口
    arcEngine开发之查看属性表
    arcEngine开发之根据点坐标创建Shp图层
    arcEngine开发之加载栅格数据
    arcEngine开发之IMap、ILayer、IFeatureLayer和IFeatureClass关系
  • 原文地址:https://www.cnblogs.com/wcm19910616/p/10518252.html
Copyright © 2011-2022 走看看