查找命令对于隐藏文件夹无法正常工作

问题描述 投票:0回答:1

我有以下目录树:

“all”文件夹内有很多子文件夹,我们将其中一个称为“mainfolder”。

我想做的是:

  • 删除主文件夹中超过 2 分钟的所有文件期望 mainfolder/.ssh 文件夹(以及里面的内容)和 .sync 文件

我已经构建了以下查找命令:

find all/* -mindepth 1 ! \( -name ".sync" -o -type d,f -path all'/*/.ssh' -o -type d,f -path all'/*/.ssh/*' \) -mmin +2 -delete >/dev/null

到目前为止它可以工作,但是 mainfolder/test/.ssh 文件夹和包含的文件(file5 和 .file6)不会被删除:

我该如何解决这个问题?

linux bash find
1个回答
0
投票

*
不会特别对待
/

一种可能性是每次测试加倍:

find all \
    -mindepth 2 \
    -path 'all/*/.ssh' ! -path 'all/*/*/.ssh' -prune \
    -o \
    -path 'all/*/.sync' ! -path 'all/*/*/.sync' -prune \
    -o \
    ...

如果您使用 GNU grep,它可能有

-regex
:

find all \
    -mindepth 2 \
    -regextype awk \
    -regex 'all/[^/]+/\.(ssh|sync)' -prune \
    -o \
    ...
© www.soinside.com 2019 - 2024. All rights reserved.