我想从气流子文件夹中删除所有超过 10 天的文件
我使用了以下命令:
find /var/log/airflow/ -type f -mtime +10 -delete
但排除气流文件夹下存在的所有文件: file1 、 file2 、 file3 、 file4 、 file5
pwd
/var/log/airflow
ls -ltr
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder1
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder2
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder3
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder4
drwxr-xr-x 2 root root 6 Sep 13 11:15 folder5
-rw-r--r-- 1 root root 0 Sep 13 11:15 file1
-rw-r--r-- 1 root root 0 Sep 13 11:15 file2
-rw-r--r-- 1 root root 0 Sep 13 11:15 file3
-rw-r--r-- 1 root root 0 Sep 13 11:15 file4
-rw-r--r-- 1 root root 0 Sep 13 11:15 file5
因此,airflow 下的所有子文件夹及其文件都将被擦除,但 Airflow 下的文件不会被擦除。在这种情况下,我如何更改我的命令以支持排除。
答案1
您需要做的就是添加 -mindepth 全局选项,如下所示:
$ find /var/log/airflow/ -mindepth 2 -type f -mtime +10 -delete
答案2
要告诉find
只查看 /var/log/airflow 的子文件夹,只需给它这些起点:
shopt -s dotglob
find /var/log/airflow/*/* -type f -mtime +10 -delete
这会强制在 /var/log/airflow 下存在一个子目录以便匹配。我设置了dotglob
气流下的任何“隐藏”目录也匹配。