使用 Linux 命令删除早于 1 天的子目录中的文件

Remove files in subdirectories older than 1 day with Linux command

老实说,我还远不是一个像样的bash脚本编写者,但我做了一些研究,发现了一个似乎有用的命令

find /path/to/files* -mtime +1 -exec rm {} \;

问题是这一行是否会删除目录?因为我只想删除图像文件(实际上是 *.jpeg 格式)

不,没有 -r 标志的 rm 不会删除目录。

您似乎想添加更多过滤器:

  • -type f 仅匹配文件
  • -name '*.jpeg' 仅匹配以 .jpeg
  • 结尾的文件

最后,您可以使用更简单的 -delete

而不是 -exec rm {} \;

放在一起,这个看起来更适合你:

find /path/to/files* -mtime +1 -type f -name '*.jpeg' -delete

然后将搜索结果缩小到 *.jpeg 文件:

find /path/to/files* -mtime +1 -type f -name "*.jpeg" -exec rm {} \;

最好在删除之前删除 exec 参数来干 运行:

find /path/to/files* -mtime +1 -type f -name "*.jpeg"

每一行都将传递给 rm 命令,仅此而已。