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

时间:2016-10-27 19:46:59

标签: linux bash rm

老实说,我真的无法成为一个体面的bash脚本编写者,但我做了一些研究并找到了一个看起来很有用的命令

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

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

2 个答案:

答案 0 :(得分:5)

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

看起来您想要添加更多过滤器:

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

最后,您可以使用更简单的-exec rm {} \;代替-delete

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

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

答案 1 :(得分:1)

然后将搜索结果缩小为* .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命令,仅此而已。