繁体   English   中英

Linux-删除嵌套目录中的文件(仅)

[英]Linux - Deleting files (only) within nested directories

我有一组用户文件夹,他们可以在其中保存PDF。 我想创建一个cron作业,该作业将删除所有嵌套目录中超过一个星期的所有文件(仅文件,而不是目录)。

因此,我的目录结构如下所示:

users
│  index.html
│
+---+ a-long-string-of-random-characters-1
|   │   file1.pdf
│   │   file2.pdf
│   
|
+---+ a-long-string-of-random-characters-2
│   │   file1.pdf
│   │   file2.pdf
|
|
...

我已经有大约8个目录。 我需要删除user目录及其子目录下的所有pdf文件。

我使用以下命令删除旧的数据库备份:

00 06 * * * find /path/to/backups/* -mtime +14 -delete

有些部分很明显。 +14将变成+7/*将是/*.pdf

00 06 * * * find /path/to/users/*.pdf -mtime +7 -delete

但是子目录呢?

干杯

更换:

00 06 * * * find /path/to/users/*.pdf -mtime +7 -delete

带有:

00 06 * * * find /path/to/users/ -type f -iname '*.pdf' -mtime +7 -delete

笔记:

  1. find将自动通过子目录递归。 我们只需要告诉它从/path/to/users/开始,它将以递归方式浏览所有users子目录。

  2. 为了将搜索限制为常规文件,我们添加-type f

  3. 为了将搜索范围限制为名称以.pdf结尾的文件,我们添加了-iname '*.pdf' (使用-iname可使匹配不区分大小写,通常是个好主意)

  4. 在创建上述cronjob之前,请尝试:

     find /path/to/users/ -type f -name '*.pdf' -mtime +7 

    这将向您显示将删除哪些文件。 如果您对所需的列表感到满意,则可以使用-delete再次运行它或创建cronjob。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM