find - Linux中的“-mtime”时间有什么替代方法吗?
问题描述
我想根据创建(或修改)日期删除特定目录中的所有文件。我知道要完成这项任务,有以下命令:
find /tmp/log -maxdepth 1 -name 'file*' -mmin +60 -type f -exec rm {} \;
问题是我使用的 OpenWrt 系统版本不支持标志 -mtime(或者 -mmin)。那么有没有其他方法可以根据日期删除文件呢?
解决方案
OpenWrt 似乎用 BusyBox 版本替换了大多数 Linux 命令(哎哟)(请参阅https://openwrt.org/docs/techref/busybox)
根据 BusyBox 文档,当前版本确实支持-mtime,但似乎您的版本不? (我会再试一次,以确保您没有弄乱命令行)
无论如何,如何使用 BusyBox 命令完成此操作?
安装新版本的 BusyBox?
或安装find命令的“真实”版本
或者如果此命令
date -d '@946710000'
打印日期 ~ 2000 年 1 月 1 日,请尝试以下操作(未在 BusyBox 上测试!!):cur=`date "+%s"` # current timestamp old=`echo $cur|awk '{print $1 - (3600*10)}'` # 10 days ago for f in *;do date -r "$f" "+%s^$f" # timestamp of named file done | awk -F'^' -v "old=$old" '$1<old{print $2}' # older?
(假设文件名中没有 ^)
推荐阅读
- c++ - 从 C++ 函数更改 QML 标签文本
- arrays - Mongo DB 是否可以根据 Mondo DB 文档中的 2 个 ID 选择数据?
- validation - ReactiveUI 仅在用户输入更改时验证
- r - 安装 R 包 - HPC 集群
- c++ - 一种确定成本最低的参数类型的编译时方法
- java - java.lang.RuntimeException: Parcelable 遇到 IOException 写入可序列化对象 (name = [[Landroid.widget.Button;)
- c++ - 当我重复该程序时,它会跳过数组条目
- python - 将时间序列频率从每小时转换为 15 分钟
- python - 如何在 django3 中的模板上显示上传的文件或图像
- c# - DataSet.GetChanges() 返回异常:索引超出范围。必须是非负数且小于集合的大小