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

相关推荐
GeW4 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux
mounter6255 小时前
深入理解 gccrs:GCC 如何实现 Rust 编译器,以及编译 Linux 内核面临的挑战
linux·驱动开发·rust
垚垚学技术_聚焦云原生5 小时前
Ansible Playbook 进阶:when 条件、loop 循环、handlers 触发器落地
linux·ansible·自动化运维·devops
无足鸟ICT6 小时前
【RHCA+】type命令(判断命令类型)
linux·ssh·bash
咸鱼梦想家π6 小时前
Linux开发工具(下)
linux·运维·服务器
LHICOD6 小时前
Linux-1
linux·ip·vmware·虚拟机·cmd·ping
丰锋ff7 小时前
用户管理命令
linux·运维·服务器
刚入门的大一新生8 小时前
Linux-线程概念
linux·jvm
H.莓飛8 小时前
【数据结构】排序总结与规模实测
linux·服务器·开发语言·数据结构·visual studio·1024程序员节
Zenova EdgeOS9 小时前
Linux 日志实战:用 journalctl 精准检索与治理工业边缘日志
linux·运维·chrome