排除linux查找中的隐藏文件和文件夹
在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 '.*/\.
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'/@.*/.
我想是吧?(未经测试)