我有以下目录树:
“all”文件夹内有很多子文件夹,我们将其中一个称为“mainfolder”。
我想做的是:
我已经构建了以下查找命令:
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)不会被删除:
我该如何解决这个问题?
*
不会特别对待/
。
一种可能性是每次测试加倍:
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 \
...