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   陈惟鲜的博客  阅读(65)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示