加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 删除文件 – 特定日期

发布时间:2020-12-15 22:06:04 所属栏目:安全 来源:网络整理
导读:如何删除在特定日期创建的文件? ls -ltr | grep“11月22日”| rm – 为什么这不是wrking? 解决方法 您的代码有三个问题: rm在其命令行中获取其参数,但您没有在命令行上传递任何文件名.您正在传递标准输入数据,但rm没有读取该数据1.有办法解决这个问题. ls
如何删除在特定日期创建的文件?

ls -ltr | grep“11月22日”| rm – 为什么这不是wrking?

解决方法

您的代码有三个问题:

> rm在其命令行中获取其参数,但您没有在命令行上传递任何文件名.您正在传递标准输入数据,但rm没有读取该数据1.有办法解决这个问题.
> ls -ltr |的输出grep“Nov 22”不仅包含文件名,还包含mangled个文件名以及一些其他信息,如时间.
> grep过滤器不仅会捕获11月22日修改的文件;它还将捕获名称包含11月22日的文件.它也不会在显示日期的区域设置中捕获您想要的文件.

find命令允许您根据条件搜索文件,例如其名称与特定模式匹配或其日期在特定范围内.例如,以下命令将列出当前目录及其今天已修改的子目录中的文件(按GMT日历日期).用rm替换echo – 一旦你检查了你有正确的文件.

find . -type f -mtime -2 -exec echo {} +

使用GNU find,例如在Linux和Cygwin上找到的,有一些选项可以做得更好:

> -maxdepth 1(必须在其他条件之前指定)将搜索限制在指定的目录中(即它不会递归).
> -mmin -43匹配最多42分钟前修改过的文件.
> -newermt“11月22日”匹配11月22日当地时间或之后修改的文件.

从而:

find . -maxdepth 1 -type f -newermt "Nov 22" !! -newermt "Nov 23" -exec echo {} +

或者,进一步缩写:

find -maxdepth 1 -type f -newermt "Nov 22" !! -newermt "Nov 23" -delete

使用zsh,m glob qualifier将模式限制为在某个相对日期范围内修改的文件.例如,*(m1)扩展为过去24小时内修改的文件; *(m-3)扩展到过去48小时内修改的文件(首先将天数四舍五入为整数,然后 – 表示严格的不等式); *(mm-6)扩展为最近5分钟内修改的文件,依此类推.

1rm-i(以及只读文件的普通rm)在删除之前使用它来读取确认符y.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读