Bash脚本删除超过N天的文件但排除某个文件夹中的文件

时间:2014-05-20 05:56:22

标签: bash shell

我需要创建一个bash脚本,删除downloads文件夹中N天以前的所有文件,但会排除archive子文件夹中的所有文件。我的文件夹结构如下:

downloads/
   user1_folder/
      archive/
   user2_folder/
      archive/
   ...

基于this Q&A我能够创建查找和删除超过N天的文件的脚本,但我想排除archive个子文件夹中的所有文件。

#!/bin/bash
find ./downloads -mtime +32 -type f -delete

2 个答案:

答案 0 :(得分:2)

尝试:

find ./downloads -maxdepth 2 -type f -mtime +32 -delete
  

-maxdepth级别          在命令行参数下面的目录的大多数级别(非负整数)下降。 -maxdepth 0           表示仅将测试和操作应用于命令行参数。

答案 1 :(得分:0)

添加! -path (your path)应该可以解决问题

find ./downloads ! -path ./downloads/*/archive/* -mtime +32 -type f -delete