在Linux shell中,你可以使用find命令结合-mtime选项来定位某段时间之前的文件,并且结合文件名模糊搜索条件进行删除操作。以下是一个详细的步骤说明和代码示例: 1. 确定时间范围和文件名模糊匹配模式 首先,你需要确定要删除的时间范围(例如,删除30天之前的文件)和文件名模糊匹配模式(例如,以.log结尾的文件)。 2. 使...
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。 -ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 options: -name 按照文件名查找文件。
find / -ctime -1 -ls # 查找在系统中最后24小时里被改变状态的文件 # 删除tmp目录下3天前所有子文件,如果不带*,则会干掉此非空目录 /usr/bin/find /data/htdocs/test.cn/data/tmp/* -mtime +3 -ls [正常情况下:atime 与 mtime所找到的文件个数是相等的] shell脚本举例: 文件名: test.sh 内容如...
清理指定期间内所有文件同clearfile.sh 清理指定期间内固定大小文件 同clearfile.sh 其他文件日期格式清理 同clearfile.sh 模式1:DEL_FLAG=N 脚本只会把文件按天/按月归档到以时间命名的文件夹内,如 模式2:DEL_FLAG=Y 把文件归档成压缩文件*tar.gz,并删除归档的文件夹 PS,对于大量需要清理的目录,可以写一个非...
需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。 可以使用下面一条命令去完成: 代码语言:javascript 复制 find/home/lifeccp/dicom/studies-mtime+21-name"*.*"-exec rm-Rf{}\; 这个是根据时间删除。 下面简要解释一下,这句shell命令: ...
删除10前的目录 finddir-mtime+10-typed |xargsrm-rf 1. dir是目标目录 注意:这里是删除若干天前没有修改的文件,如果目录内的文件有变化则不会影响mtime,目录同样会被删掉。如果仅仅是想删除若干天前的文件,请使用下一个命令。 删除10前的文件 finddir-mtime+10-typef |xargsrm-f ...
写一个shell脚本用于删除30天前备份的文件,不用find命令查找。 linuxcentos运维 有用关注4收藏 回复 阅读3.4k 2 个回答 得票最新 feanmy 1967 发布于 2020-12-25 比如你的文件命名格式是这样的api-2020-12-20.log #!/bin/bash day=`date -d "30 day ago" +%F` rm -f "api-${day}.log" ...
一、编写shell脚本 auto-del-log.sh 执行 vi auto-del-log.sh 新建一个shell脚本 执行 chmod 777 auto-del-log.sh 赋予脚本权限 脚本内容示例: #!/bin/bash # 删除定时任务产生的日志-距今10天以前的 find /home/app/micro-service/task_platform/quartz-logs -mtime +10 -name "*.log" -exec rm -rf...
“`shell find /path/to/folder/* -type d -newermt “YYYY-MM-DD” ! -newermt “YYYY-MM-DD” -exec rm -rf {} \; “` 将`YYYY-MM-DD`替换成你想要删除文件夹的日期。该命令会删除修改时间早于指定日期的文件夹。 请注意,这些命令都是直接删除文件夹,没有任何确认提示,所以请谨慎使用。在运行任...
expired_time=3#此处定义文件的过期时间,如3天functiondeletefiles() { local currentDate=$(date+%s) #获取系统时间,所以时间格式为秒echo"current date is:"$currentDateforfilein$(#此处定义文件格式,避免误删,$1指的是下面deletefiles函 数的参数$data_pathfind$1-name"*.gz");dolocal name=$filelocal ...