分类 Shell 下的文章

举例说明,
每天1点10分删除/data目录及其子目录下的10天以上的txt文件。

find /data -type f -mtime +10 -exec rm -f {} \

每天1点10分定时执行:

  1. 先执行crontab -e
  2. 再输入10 1 * * * find /data -type f -mtime +10 -exec rm -f {} \

分析

这个问题可以拆解为两部分:

  1. 怎么查找N天前的文件
  2. 怎么定时执行shell命令或脚本

查找文件,是使用find命令。

定时执行,使用crontab

将关键字使用引号引住,再用或符号|分割即可。

有时候自然会想到用|,但是|在shell命令中又表示通道,可能就想不明白能不能用了。其实再进一步加上引号就能区分了。
如:

grep -E 'Start|Finish' <filename>  // 使用-E选项,过滤出文件中包含Start或者Finish的行
egrep 'Start|Finish' filename    // 使用egrep可以免去-E选项,默认支持