我正在尝试在Linux中使用find
命令时排除隐藏文件和文件夹。
我需要排除以点号(.hidden)开头的文件或文件夹,同时还需要排除以@符号开头的文件夹(如@eaDir)。
目前,我有以下命令似乎可以工作,但也许有更优雅的方法?
find /path/to/start/search/ -not -path '*@eaDir*' -not -path "*/\.*" -type f -mtime -2
我看到过使用正则表达式的示例,例如:
find . \( ! -regex '.*/\..*' \) -type f
但是我不确定如何在使用-regex
选项时排除@eaDir
目录?
我相信也可能有以两个点开头的隐藏文件,例如"..hidden"?我的命令已经覆盖了这些文件吗?还是我需要添加第三个选项如 -not -path "*/\..*"
来排除这些文件呢?
然后我看到一些使用-prune
的例子,以便find命令不会降至隐藏目录中,但我不确定我该如何在我的示例中正确使用它。我对此很感兴趣,因为这可以加快速度。
谢谢!