如何查找5分钟后创建的文件排除root用户拥有的一个子目录

如何查找5分钟后创建的文件排除root用户拥有的一个子目录

使用“jbossapp”用户,我使用此命令查找创建时间超过 3 分钟的“.stat”文件。

find /opt/jboss/* -mmin +3 -name "*.stat" 

最近,在使用此命令时,现在使用 root 用户在目录中创建了一个文件夹,/opt/jboss/我从特定文件夹中收到“权限被拒绝”,这中断了搜索,如何排除具有 root 权限的特定文件夹。

答案1

使用

find /opt/jboss/* -type f -mmin +3 -name "*.stat" 2>/dev/null

会将2>/dev/null标准错误输出重定向到特殊文件/dev/null以避免显示任何错误。

我们还添加-type f寻找F仅限艾尔斯岛。

要排除目录,请使用如下所示

find /opt/jboss/* -path /path/to/exclude -prune -o -type f -mmin +3 -name "*.stat" 2>/dev/null

您也可以使用-not -path

find /opt/jboss/* -not -path /path/to/exclude -type f -mmin +3 -name "*.stat" 2>/dev/null

即使您想排除 root 拥有的用户的查找结果,也可以按如下方式使用:

find . \! -user root   ..... 

答案2

如果您想排除 root 拥有的文件夹,请使用 find 删除它们:

find /opt/jboss/. \
   -type d ! -name . -owner root -prune -o -type f -mmin +3 -name '*.stat' -print

解读为:在顶级目录 /opt/joss/ 中,任何不名为“.”、属于“root”的文件夹都不会被跟踪。对于其他一切,我们通过选择超过 3 分钟且扩展名为“.stat”的常规文件来进一步限制将其打印到标准输出。

相关内容