0

我不知道如何处理 cron 作业,但是我可以解释我想要它做什么......任何有如何做到这一点经验的人都会非常感激......

  1. 删除目录中最旧的文件
  2. 在一个目录中至少保留 8 个最新文件

是否可以?几个小时以来,我一直试图了解这方面的文档,以为我会要求节省时间来学习如何处理这些事情……我的主机允许我将 cron 作业输入到控制面板后端。

我找到了这个命令

(ls -t|head -n 5;ls)|sort|uniq -u|xargs rm

但是,它看起来好像知道我想从哪个目录中删除......而且我不知道它做了什么......

4

1 回答 1

0

正如我在评论中已经写的那样,执行您想要的操作的脚本独立于 cron。这是做你想做的事的可能性:

cd /path/to/dir; ls -t | tail -n +9 | xargs rm

解释

  • cd /path/to/dir: 转到目录
  • ls -t:获取目录中所有文件的列表,按最后修改日期排序,最新的在前
  • tail -n +9:选择所有行(在本例中为文件名),从第 9 行开始
  • xargs rm: 删除之前命令“选择”的文件

通过选择从第 9 行开始的所有行,8 个最新文件永远不会被删除。

我假设只有文件存储在文件夹中,因为该rm命令只会删除这些文件。要同时删除文件夹及其所有内容,您必须使用rm -r.

要阅读命令的详细描述(例如cd, ls, tail, xargs, rm),请使用man <command>

于 2012-10-08T07:54:54.703 回答