linux rm 删除指令新用

本文指导如何使用rm指令结合正则表达式,精确删除指定目录下的临时文件,同时保留所需文件。

最近在导师写网络带宽分配的仿真程序,期间产生了大量临时文件,怎么用rm指令删除这些临时文件而不删除其他特定的文件呢?

比如下面是临时文件:

temp101 temp102 temp103 temp104 temp105

temp201 temp202 temp203 temp204 temp205

temp301 temp302 temp303 temp304 temp305

temp401 temp402 temp403 temp404 temp405

temp501 temp502 temp503 temp504 temp505


相同目录下还有想要保留的文件:

temp10

temp20

temp30

temp40

temp50

这就需要用到rm指令与正则表达式里的字符组

       rm  -rf temp[1-5]0[1-5]

在正则表达式中你可以用字符组来限定匹配一些字符,[ ] 字符组代表一个字符


Linux系统中,默认的`rm`命令并不会主动询问用户是否确认删除文件或目录。但是,通过添加特定选项或者结合其他工具,我们可以让删除过程变得更加安全可控。 ### 方法一:使用交互模式 (-i 或 -I) 你可以直接给`rm`加上`-i`标志来启动每个单独文件都需手动确认的交互式删除;若希望减少频繁提问次数,只针对批量操作提醒,则应选择大写的`-I`标记。 #### 示例代码 ```bash # 删除之前逐一询问每一个目标 rm -i 文件名 # 对大量清除动作仅提供一次总提示 rm -Ir 目录名称 ``` 当运行上述带参数的命令时,在真正实施销毁行动前会弹出类似如下的文本框等待回应: ``` rm: remove regular file 'test.txt'? y/n ``` 此时只需要键入'y'(代表yes)即可继续下去完成移除任务;反之如果打'n',那么该元素将得以保留下来不受影响。 --- ### 方法二:借助find命令实现有条件的安全清理 如果我们想要基于一定规则筛选待处理项目的同时还能保证足够的安全性,推荐采用组合形式——先利用强大的查找功能定位符合条件的对象集合,再交由专门负责处置工作的程序去进一步管理它们。 #### 具体步骤演示 1. 找到所有在过去7天内未修改过的.log日志文档; 2. 针对此结果集逐条向管理员报告后再做最终裁定。 完整实例脚本如下所示: ```bash find /path/to/logs -type f -name "*.log" -mtime +7 -exec rm -v --interactive=once {} \; ``` 其中关键组成部分解释: - `/path/to/logs`: 设定搜索范围路径。 - `-type f`: 表明限定检索类型为普通文件而非特殊设备或者其他类别。 - `"*.log"`: 匹配结尾包含“.log”的全部项。 - `-mtime +7`: 定义超出指定时间阈值(即一周以上无改动记录)才纳入考虑范畴之内。 - `{}` 和 `\;`: 标识传递匹配成果的位置占位符以及结束标识,确保每找到一项都会独立触发关联的动作链路。 --- 尽管如此简单易行的办法已经足够满足日常需求场景了,不过仍然建议大家尽量避免滥用递归强删手段(`rm -rf`)以免误伤无辜重要资料!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值