Linux:如何删除指定时间之前修改的文件?

1、与文件有关的时间

在说明如何删除符合这种要求的文件之前,先来看看与文件有关的有哪些时间

简名 全名 中文名 含义
atime access time 访问时间 文件中的数据最后被访问的时间
mtime modify time 修改时间 文件中的数据最后被修改的时间
ctime change time 变化时间 文件的元数据后发生变化的时间。比如权限,所有者等
crtime birth time 创建时间 文件创建时间

2、查看时间的方法

通常使用ls只能看到修改时间,比如:

$ ls -l

total 92

-rw-r--r-- 1 admin 197121 91234 4月 16 10:12 access.log

如果想以格式化的形式显示时间,可以使用--time-style,比如:

$ ls -l --time-style=long-iso

total 92

-rw-r--r-- 1 admin 197121 91234 2024-04-16 10:01 access.log
$ ls -l --time-style=full-iso

total 92

-rw-r--r-- 1 admin 197121 91234 2024-04-16 10:01:37.078490500 +0800 access.log

有没有什么方法将上述4个时间都显示,有的,可以使用stat

$ stat access.log

File: access.log

Size: 91234 Blocks: 92 IO Block: 65536 regular file

Device: 88ca30ch/143434508d Inode: 281474976892461 Links: 1

Access: (0644/-rw-r--r--) Uid: (197108/Administrator) Gid: (197121/ UNKNOWN)

Access: 2024-04-16 10:12:44.423859000 +0800

Modify: 2024-04-16 10:12:42.045405200 +0800

Change: 2024-04-16 10:12:42.044460300 +0800

Birth: -

据查Birth属性linux已废弃,目前状态显示结果均为-

虽然使用stat查不到创建时间,但一般也够用了。如果一定想知道创建时间,可以使用debugfs命令。

这个命令一般需要使用root用户才能执行,它是直接从文件的inode上获取这个时间的

3、针对时间的操作

现在看一下根据时间如何查找文件。可以使用find命令,它提供了一些参数:

-amin n n分钟前访问过的

-atime n n天前访问过的

-cmin n n分钟前变化过的

-ctime n n天前变化过的

-mmin n n分钟前修改过的

-mtime n n天前修改过的

比如查找30天前修改过的文件

find ./ -type f -mtime +30

如果想将这些文件删除,可以直接加上-delete

find ./ -type f -mtime +30 -delete

如果想执行其它命令,可以直接加上-exec

相关推荐
2401_826097623 小时前
JavaEE-Linux环境部署
java·linux·java-ee
(:满天星:)4 小时前
第31篇:块设备与字符设备管理深度解析(基于OpenEuler 24.03)
linux·运维·服务器·网络·centos
爱莉希雅&&&4 小时前
shell编程之awk命令详解
linux·服务器·git
笑稀了的野生俊4 小时前
在服务器中下载 HuggingFace 模型:终极指南
linux·服务器·python·bash·gpu算力
渡我白衣4 小时前
Linux操作系统之文件(四):文件系统(上)
linux
ZZH1120KQ5 小时前
Linux系统安全及应用
linux·运维·系统安全
程序漫游人5 小时前
centos8.5安装jdk21详细安装教程
java·linux
小小小糖果人5 小时前
Linux云计算基础篇(5)
linux·运维·服务器
small_wh1te_coder6 小时前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
小张是铁粉6 小时前
docker在Linux的安装遇到的问题
linux·docker·容器