开发者社区> 问答> 正文

怎么实现删除当前目录下所有一周之内没有被访问过的a .out或*.o文件啊?

已解决

怎么实现删除当前目录下所有一周之内没有被访问过的a .out或*.o文件啊?

展开
收起
格格的阿里云 2022-04-02 01:40:24 731 0
1 条回答
写回答
取消 提交回答
  • 推荐回答

      $ find . (- name a.out - o - name ‘.o’)
      > - atime +7 - exec rm {} ;
    说明如下:
    命令中的“.”表示当前目录,此时find将从当前目录开始,逐个在其子目录中查找满足后面指定条件的文件。
    (和)表示括号(),其中的“”称为转义符。之所以这样写是由于对Shell而言,(和)另有不同的含义,而不是这里的用于组合条件的用途。
    “- name a.out”是指要查找名为a.out的文件;“- name ‘
    .o’”是指要查找所有名字以 .o结尾的文件。这两个- name之间的- o表示逻辑或(or),即查找名字为a.out或名字以 .o结尾的文件,find在当前目录及其子目录下找到这佯的文件之后,再进行判断,看其最后访问时间是否在7天以前(条件-atime +7),若是,则对该文件执行命令rm(- exec rm{ };)。
    其中{ }代表当前查到的符合条件的文件名,;则是语法所要求的。上述命令中第一行的最后一个是续行符。当命令太长而在一行写不下时,可输入一个,之后系统将显示一个>,指示用户继续输入命令。

    2022-04-02 01:40:51
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载