排除linux查找中的隐藏文件和文件夹

排除linux查找中的隐藏文件和文件夹,linux,shell,find,Linux,Shell,Find,在linux中执行find时,我试图排除隐藏的文件和文件夹 我必须排除以点(.hidden)开头的文件或文件夹,但也必须排除以@开头的文件夹(如@eaDir) 到目前为止,我有以下命令,这似乎是工作,但也许有一个更优雅的方式 find /path/to/start/search/ -not -path '*@eaDir*' -not -path "*/\.*" -type f -mtime -2 我确实看到过使用正则表达式的示例,如下所示: find . \( ! -regex '.*/\.

在linux中执行
find
时,我试图排除隐藏的文件和文件夹

我必须排除以点(.hidden)开头的文件或文件夹,但也必须排除以@开头的文件夹(如@eaDir)

到目前为止,我有以下命令,这似乎是工作,但也许有一个更优雅的方式

find /path/to/start/search/ -not -path '*@eaDir*' -not -path "*/\.*" -type f -mtime -2 
我确实看到过使用正则表达式的示例,如下所示:

find . \( ! -regex '.*/\..*' \) -type f
但我不确定如何使用
-regex
选项排除
@eaDir
目录

我相信也可能有以两点开头的隐藏文件?比如“隐藏”?这已经包含在我的命令中了,还是我会简单地添加第三个选项,如
-not-path“*/\..*”
,以排除这些选项

然后我看到了一些使用
-prune
的示例,这样find就不会出现在隐藏的目录中,但是我不确定如何在我的示例中使用这个正确的方法。我会对此感兴趣,以加快速度


谢谢

使用
-not-name.*.
。这将排除以
开头的任何名称排除以
@
开头的文件和文件夹:

find /path/to/start/search/ -not -path '*/[@.]*' -type f -mtime -2
find /path/to/start/search/ -not -path '*/.*' -type f -mtime -2 | grep -v '/@.*/.*'
排除以
开头的文件以及以
@
开头的文件和文件夹:

find /path/to/start/search/ -not -path '*/[@.]*' -type f -mtime -2
find /path/to/start/search/ -not -path '*/.*' -type f -mtime -2 | grep -v '/@.*/.*'

还请看并感谢,这非常有效,比我最初的命令更加流畅!现在我只需要弄清楚
-prune
选项。
find/path/to/start/search/-prune-not-name'.*.-键入f-mtime-2 | grep-v'/@.*/.
我想是吧?(未经测试)