linux 文件属性被替换修改查询并修改 ----i-----------

系统服务发布本来非常正常,但是今天不知道为什么,打包发布异常,删除文件目录的权限都没有。

上网搜索后,最终找到文件属性被修改,导致无法删除。

通过lsattr命令查询文件的属性,如果出现,其中

----i-----------
的文件是属性被修改的。
查找文件时,注意,隐藏文件也要查询。
[root@localhost code]# lsattr
----i----------- ./cwx-core
----i----------- ./cwx-api
----i----------- ./cwx-cus
---------------- ./cwx-trs-api
---------------- ./cwx-app-agg

 

查询目录下所有-i 的文件。该命令查询包含-i的文件,并且目录递归查询。查询结果输出到a.log

lsattr -a -R | grep "\-i\-" > a.log

 

拿到a.log文件后,进行批量替换,

通过 chattr -i 替换 ----i-----------,然后命令执行。

再次查询得到如下结果,接着,就可以删除目录了。

[root@localhost code]# lsattr
---------------- ./cwx-core
---------------- ./cwx-api
---------------- ./cwx-cus
---------------- ./cwx-trs-api
---------------- ./cwx-app-agg

 

其中lsattr命令的参数如下

选项    说明
-a    列出所有文件和目录,包括以.开头的隐藏文件
-d    只列出目录的属性,而不是其下的文件
-R    递归处理,将指定目录下的所有文件及子目录一并处理
-v    显示文件的版本/生成号

 

真烦。。

替换文件时,发现有的class,还无法把属性改回来

rm: cannot remove ‘abc/impl/EntrustOrderServiceImpl$2.class’: Operation not permitted
rm: cannot remove ‘abc/impl/EntrustOrderServiceImpl$3.class’: Operation not permitted

即使执行

chattr -i  abc/impl/EntrustOrderServiceImpl$3.class
这里会提示找不到文件

处理办法使用通配符*,可以解决问题。

chattr -i  abc/impl/*

 

匹配最后一个斜杠后面的字符串正则表达式

[^/]+(?!.*/)

 

posted on 2024-05-31 19:03  陈惟鲜的博客  阅读(36)  评论(0编辑  收藏  举报

导航