bash 脚本根据文件名中的日期查找旧文件

2024-02-15

我正在开发一个 bash 脚本,该脚本需要根据一个变量搜索单个目录中“旧”的文件,该变量指定在超过阈值之前需要经过多少天,并且文件被标记为要执行操作(可以是任何内容)从移动到存档到删除,等等...)。

问题是文件的修改时间与确定文件需要多久才能采取行动无关,因为文件可能很少更改,脚本的执行时间可能会有所不同,等等......

确定文件保存的时间是实际文件名,格式为 YYYY-MM-DD(或带有日期命令的 %F)。以文件名contents-2011-05-23.txt为例。可以在此目录中运行哪些命令来查找超过一定天数的所有文件(我当前将阈值设置为 7 天,可以更改)并打印出它们的文件名?


创建一个 bash 脚本 isOld.sh,如下所示:

#!/bin/bash

fileName=$1
numDays=$2

fileDt=$(echo $fileName | sed 's/^[^-]*-\([^.]*\)\..*$/\1/')
d1=$(date '+%s')
d2=$(date -d $fileDt '+%s')
diff=$((d1-d2))
seconds=$((numDays * 24 * 60 * 60))
[[ diff -ge seconds ]] && echo $fileName

然后通过运行以下命令向上述文件授予执行权限:

chmod +x ./isOld.sh

最后从目录顶部运行此 find 命令来打印超过 7 天的文件,如下所示:

find . -name "contents-*" -exec ./isOld.sh {} 7 \;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bash 脚本根据文件名中的日期查找旧文件 的相关文章

随机推荐

  • Opencart最低下单价

    我正在尝试在 Catalogue view theme default template checkout confirm tpl 中实现以下代码 div div div class warning Minimum 10 Euro to c
  • 使用 PHP 为移动设备进行令牌身份验证

    我正在编写一个 iPhone 应用程序作为我网站的移动版本 我打算公开一些 REST API 以便应用程序可以更新用户的数据 我不希望用户每次都登录 但我想保存他的令牌 cookie 并在以后的所有请求中重用它 我可以设置一个随机令牌并将其
  • 适用于 8 位 MCU 的更快 16 位乘法算法

    我正在寻找一种比下面的算法更好的算法来将两个整数相乘 你对此有什么好主意吗 MCU AT Tiny 84 85 或类似的 运行此代码的地方没有 mul div 运算符 uint16 t umul16 uint16 t a uint16 t
  • 如何在 Flask 中将 login_required 与类一起使用?

    from flask login import login required from flask restful import Resource login required class MyClass Resource 在主文件中 我调
  • 如何在继承的TextBox中保留Font?

    我使用以下代码来获取未绘制边框的 TextBox public partial class CustomTextBox TextBox public CustomTextBox InitializeComponent SetStyle Co
  • BroadcastReceiver 的生命周期相对于 Android O 发生了变化

    如果我声明一个BroadcastReceiver通过系统广播的清单文件 例如ACTION POWER DISCONNECTED 系统将在每次发送特定广播时调用它 因此 BroadcastReceiver 的生命周期不受限制 但也有一些广播无
  • JavaScript 全局变量和自调用匿名函数

    所以我一直在读Javascript 好的部分 https rads stackoverflow com amzn click com 0596517742Crockford 指出的一件事是 Javascript 中全局变量的使用弱点 如果你
  • CSS:当我附加新的 div 元素时,z-index 无法正常工作

    我想实现一个关于绘制由 div 元素配置的一些矩形和贴纸的网站 要添加贴纸或矩形 用户单击按钮 我想按以下顺序排列 div 元素 上 贴纸 gt 架子 gt 矩形 gt 画布 下 所以我在样式表中使用了 z index canvas pos
  • 我怎样才能制作一个无限循环并暂停 5 秒

    string connectionstring server SQLVS2 SQLVS2 database DDM Persist Security Info True uid ddmuser password User02 Ddm Sql
  • JasperReports 可以在报告中包含 pdf 吗?

    是否可以在 JasperReport 中包含现有的 pdf 文件 我们确实希望将新数据附加到现有报告中 而不重新生成现有报告 我们将导出回 pdf 我正在考虑使用 iText 的 PdfCopy 来合并两个 pdf 但希望 JasperRe
  • 通过联合访问 __m128 变量的字节是否合法?

    考虑这个变量声明 union struct float x y z padding components m128 sse data 我的想法是通过分配值x y z字段 执行 SSE2 计算并通过读取结果x y z 不过 我对这是否合法有些
  • 检索 Windows Vista 及更高版本上 BootMgr 的分区号

    我需要将启动管理器映射到分区号 Manufacturer Recovery partition Partition 0 Boot manager Partition 1 C Partition 2 D Partition 3 对于已安装的分
  • 在 R 中转换 3D 数组中的表格

    我有一个矩阵 R gt pippo m 1 2 3 4 1 1 2 3 4 2 5 6 7 8 3 9 10 11 12 4 13 14 15 16 5 17 18 19 20 6 21 22 23 24 我想用 dim 2 4 3 将该矩
  • 如何调试 UWP UpdateTask?

    在我的 UWP 应用中 如何通过 UpdateTask 中的代码进行调试 VS 2017 中的 生命周期事件 下拉菜单似乎没有提供触发此类后台任务的选择 有办法做到这一点吗 首先介绍一下 UWP 的 UpdateTask 这是一个后台任务
  • facebook-ios-sdk requestWithGraphPath:@"我/朋友"

    我找不到关于这个 sdk 的任何基本文档 我只是愚蠢还是找错地方了 我不知道这个方法是什么 void request FBRequest request didLoad id result 实际上在这样的请求的情况下返回 requestWi
  • Bootstrap tabbable 和 popover 之间的冲突

    我正在尝试在同一页面中使用 Twitter Bootstrap tabbable 和 Bootstrap popovers 我在解决弹出窗口无法出现在选项卡限制之外的问题时遇到困难 问题是当弹出窗口出现在边框旁边时 它是半隐藏的 我不是 J
  • 需要授予哪些权限才能访问 sys.dba_systems

    我正在开发适用于 Oracle 的应用程序 对于某种逻辑 我需要从给定的数据库用户获取具有指定模式的表列表 就我而言 我有一个已授予给定模式访问权限的用户 因此 当我的代码使用给定的凭据创建连接并尝试从以下查询中获取表时 它返回表列表 SE
  • Laravel 5 委托一条路由 - 根据角色加载不同的控制器

    所以我刚刚开始学习 Laravel 并且我已经实现了 Entrust Role Permission 包 效果非常好 现在我的问题是 我想要一个 仪表板 页面 如下所示 example com dashboard 问题是 我不确定如何设置
  • 如何在android中使线性布局部分透明?

    我有一个RelativeLayout含 2LinearLayouts其中一个部分覆盖另一个 我想做的一部分LinearLayout顶部透明 所以我也可以看到第二个LinearLayout 知道我有 2 张图像作为 2 张图像的背景Linea
  • bash 脚本根据文件名中的日期查找旧文件

    我正在开发一个 bash 脚本 该脚本需要根据一个变量搜索单个目录中 旧 的文件 该变量指定在超过阈值之前需要经过多少天 并且文件被标记为要执行操作 可以是任何内容 从移动到存档到删除 等等 问题是文件的修改时间与确定文件需要多久才能采取行