linux如何彻底的删除文件
一、使用rm命令删除
- 直接用rm
先用ls -alt看下文件信息及拥有者等
可以看到拥有者是eve用户,所以在eve用户的终端中rm命令即可,
如果是root或者其他,则优先用root或其他账号进行删除
(base) eve@Eve:~$ ls -alt a.txt
-rw-rw-r-- 1 eve eve 0 2月 26 16:17 a.txt
(base) eve@Eve:~$ rm a.txt
(base) eve@Eve:~$
- 如果是文件夹删除,则需要rm -rf
(base) eve@Eve:~$ rm -rf a
(base) eve@Eve:~$
二、如果rm删不掉,则需要用chattr修改文件的扩展属性
现象如下:即使使用管理员权限或root权限也删除不了
(base) eve@Eve:~$ rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
(base) eve@Eve:~$ sudo rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
(base) eve@Eve:~$ su root
Password:
root@Eve:/home/eve# rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
同时可以看到a.txt的属性如下:
root@Eve:/home/eve# ls -alt a.txt
-rw-rw-r-- 1 eve eve 0 2月 26 15:58 a.txt
三、解决办法:
lsattr查看文件扩展属性
root@Eve:/home/eve# lsattr a.txt
----i---------e----- a.txt
说明:(更多说明参考四:lsattr及chattr介绍)
i:设置文件或目录不可修改、不可删除、不可重命名、不可移动;
e:设置文件或目录只在系统重新启动后才能访问。
解决办法,通过chattr命令来修改删掉i属性即可。
(base) eve@Eve:~$ sudo chattr -i a.txt
(base) eve@Eve:~$ lsattr a.txt
--------------e----- a.txt
(base) eve@Eve:~$ rm a.txt
(base) eve@Eve:~$
说明:chattr要用管理员权限才能修改,所以加sudo
修改后,通过lsattr可以查看修改后的扩展权限已经没有了i,所以rm删除即可删除成功。
注意: 如果chattr移除i属性还是报错,如:
(base) eve@Eve:~$ sudo chattr -i a.txt
Usage: chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...
说明chattr命令有问题,建议从github下载源码,或者从这里下载源码:
然后执行gcc chattr.c -o chattr.out
再用生成的chattr.out来删除i属性,命令参考如下:
(base) eve@Eve:~$ gcc chattr.c -o chattr.out
(base) eve@Eve:~$ ls
chattr.out
(base) eve@Eve:~$ sudo ./chattr.out -i a.txt
再执行删除即可删除成功:
(base) eve@Eve:~$ rm a.txt
rm: cannot remove 'a.txt': Operation not permitted
四、lsattr及chattr介绍
lsattr 命令是用于显示 Linux 文件和目录的扩展属性的工具。
这些属性是文件系统提供的一种机制,用于控制文件和目录的访问、更改和删除等行为。lsattr 命令的常用选项如下:-a:显示隐藏文件和目录的属性;
-d:如果指定的参数是目录,那么只显示目录的属性;
-R:递归显示目录及其子目录中的所有文件和目录的属性;
-v:显示每个文件或目录的版本号。
常用的文件或目录属性如下:i:设置文件或目录不可修改、不可删除、不可重命名、不可移动;
a:设置只能在文件或目录中添加内容,不能修改和删除;
c:设置自动压缩文件或目录;
d:设置目录被删除时,其内容应该被保留在磁盘上,但不可访问;
s:设置文件或目录在被删除时,其空间将被清空,但数据可以恢复;
u:设置文件或目录被删除时,可以通过恢复工具来恢复;
e:设置文件或目录只在系统重新启动后才能访问。
这些属性可以通过 chattr 命令进行设置和修改。例如,chattr +i filename 将文件 filename 的属性设置为不可修改、不可删除、不可重命名、不可移动。
chattr 是 Linux 系统下的一个命令,用于修改文件或目录的属性。chattr 命令可用于设置或清除某些扩展属性,这些属性有助于在文件或目录中启用或禁用某些高级功能。chattr 命令只能被 root 用户或具有 CAP_LINUX_IMMUTABLE 许可的用户执行。chattr 命令的一些常用选项和属性如下:-R 递归地更改目录及其下面的所有文件和子目录的属性。
-v 显示修改属性的详细信息。
+ 启用某个属性。
- 禁用某个属性。
= 设置属性,删除不在命令行中指定的所有属性。
a 使文件或目录只能以追加方式打开(只允许在文件末尾添加数据)。
c 允许文件自动压缩。
d 允许文件被写入后进行同步写入。
i 防止文件被修改、重命名、删除或链接。
j 允许文件被写入后进行同步写入,但仅适用于 Ext3 和 Ext4 文件系统。
s 允许文件被安全地删除。
u 允许文件被恢复。
例如,要将 /var/log/messages 文件设置为不允许被修改,可以使用以下命令:css
Copy code
sudo chattr +i /var/log/messages
如果要取消该属性,则可以使用以下命令:css
Copy code
sudo chattr -i /var/log/messages
相关文章:
linux如何彻底的删除文件
一、使用rm命令删除 直接用rm 先用ls -alt看下文件信息及拥有者等 可以看到拥有者是eve用户,所以在eve用户的终端中rm命令即可, 如果是root或者其他,则优先用root或其他账号进行删除 (base) eveEve:~$ ls -alt a.txt -rw-rw-r-- 1 eve eve …...
数据仓库Hive的安装和部署
1)去apache.hive.org官网下载hive 目前hive主要有三大版本,Hive1.x、Hive2.x、Hive3.x Hive1.x已经2年没有更新了,所以这个版本后续基本不会再维护了,不过这个版本已经迭代了很多年了,也是比较稳定的 Hive2.x最近一直…...
Python调用CANoe常见问题
一、Win32com已经安装成功但是在pycharm中提示错误 No module named win32com.clientPyCharm中出现unresolved reference的解决方法 一直提示需要升级pip版本Pywin32已成功安装,但仍提示没有win32com模块...
一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)
文章目录背景介绍功能介绍图片滤镜图片圆角图片缩放图片旋转图片平移各位看官们大家好,上一回中咱们说的例子是"如何调整组件在约束布局中的角度",这一回中咱们说的例子是" 图片滤镜ImageFilterView"。闲话休提,言归正转,…...
Java 解释器和即时解释器(JIT)之间的区别
区别是: 翻译 .class (字节码文件) 的粒度和方式不同 解释器是一个逐条解释并执行字节码指令的组件,每次**只翻译一条**指令并执行,然后再翻译下一条指令。 它的翻译粒度是一条指令,而且是按需翻译&#x…...
Acwing 蓝桥杯 第二章 二分与前缀和
今天来补一下之前没写的总结,题是写完了,但是总结没写感觉没什么好总结的啊,就当打卡了789. 数的范围 - AcWing题库思路:一眼二分,典中典先排个序,再用lower_bound和upper_bound维护相同的数的左界和右界就…...
CSDN原力增长规则解读 实测一个月
CSDN原力越来越难了,当然,这对生态发展来说也是好事。介绍下原力增长有哪些渠道吧。发布原创文章:10分/次,每日上限为15分、2篇回答问题:1分/次,每日上限2分,2回答发动态:1分/次&…...
HDMI协议介绍(三)--InfoFrame
目录 Auxiliary Video information (AVI) InfoFrame AVI InfoFrame包结构 Header Body 举个例子 附录 Audio InfoFrame Audio InfoFrame包结构 Header Body Vendor Specific InfoFrame Vendor Specific InfoFrame包结构 Header Body AVI/AUDIO/VSI Infoframe都…...
【RocketMQ】源码详解:Broker端消息储存流程、消息格式
消息存储流程 入口: org.apache.rocketmq.remoting.netty.NettyRemotingAbstract#processRequestCommand org.apache.rocketmq.broker.processor.SendMessageProcessor#asyncProcessRequest 消息到达broker后会经过netty的解码、消息处理器等,最后根据…...
IoT项目系统架构案例2
项目背景 1.这个项目是对之前的案例的升级改造参考:IoT项目系统架构案例_iot案例_wxgnolux的博客-CSDN博客2.基于方案1的项目实施过程中碰到的问题,对硬件设备标准化的理念及新的功能需求(如根据天气预报温度调水温,APP界面可操作性优化等)•采用目前IoT主流厂商的架…...
Vue echarts封装
做大屏的时候经常会遇到 echarts 展示,下面展示在 Vue2.7 / Vue3 中对 echarts (^5.4.0) 的简单封装。 文章首发于https://blog.fxss.work/vue/echarts封装.html,样例查看 echarts 封装使用 props 说明 参数说明类型可选值默认…...
蓝桥杯入门即劝退(二十二)反转字符(不走寻常路)
欢迎关注点赞评论,共同学习,共同进步! ------持续更新蓝桥杯入门系列算法实例-------- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章…...
数据仓库Hive
HIve介绍 Hive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载,可以简称为ETL。 Hive 定义了简单的类SQL查询语言,称为HQL,它允许熟悉SQL的用户直接查询Hadoop中的数据…...
嵌入式 STM32 步进电机驱动,干货满满,建议收藏
目录 步进电机 1、步进电机驱动原理 2、步进电机驱动 3、步进电机应用 1、第一步:初始化IO口 2、设置行进方式 四、源码 步进电机 步进电机被广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业…...
详讲函数.2.
目录 5. 函数的嵌套调用和链式访问 5.1 嵌套调用 5.2 链式访问 小结: 6. 函数的声明和定义 6.1 函数的声明: 6.2 函数的定义: 5. 函数的嵌套调用和链式访问 函数和函数之间可以根据实际的需求进行组合的,也就是互相调用的…...
行测-判断推理-图形推理-位置规律-旋转、翻转
短指针每次逆时针旋转60(排除法选C走人)长指针每次顺时针旋转120选C左上菱形每次顺时针旋转90(排除C D)右上每次旋转180(选B走人)左下每次保持不变右下每次逆时针旋转90选B左上和右上为左右翻转,…...
linux shell 入门学习笔记15 shell 条件测试
概念 shell的条件测试目的是得出真和假。 shell 提供的条件测试语法 test 命令 [] 中括号命令 语法*: test条件测试 test命令用来评估一个表达式,他的结果是真,还是假,如果条件为真,那么命令执行状态结果就为0&…...
Apollo(阿波罗)分布式配置安装详解
Apollo(阿波罗) Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性&#…...
Vue3之组件
何为组件 组件化的概念已经提出了很多年了,但是何为组件呢?组件有啥优势?本文将会做出解答,首先我们需要弄清楚何为组件。在VUE的官网中的解释是: 组件允许我们将 UI 划分为独立的、可重用的部分,并且可以对…...
【网络】套接字 -- UDP
🥁作者: 华丞臧. 📕专栏:【网络】 各位读者老爷如果觉得博主写的不错,请诸位多多支持(点赞收藏关注)。如果有错误的地方,欢迎在评论区指出。 推荐一款刷题网站 👉 LeetCode刷题网站 文章…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
