find命令仅搜索非隐藏目录

Raj*_*eev 6 unix linux shell command find

在以下命令中,我只想搜索非隐藏的目录,如何使用以下命令执行此操作.在搜索日志文件时,忽略隐藏的目录

      find /home/tom/project/ -name '.log.txt'


   ls /home/tom/project/
   dir1
   dir2
   .backup
   .snapshot/
   .ignore/
Run Code Online (Sandbox Code Playgroud)

Bog*_*san 2

这将找到所有文件,但忽略那些以点开头的文件,从而隐藏文件。

find /home/tom/project/ -type f \( -iname ".log.txt" ! -iname ".*" \)
Run Code Online (Sandbox Code Playgroud)

编辑:如果上述那些不起作用,这应该可以解决问题。它有更好的正则表达式。

find /home/tom/project/ \( ! -regex '.*/\..*' \) -type f -name ".log.txt"
Run Code Online (Sandbox Code Playgroud)

编辑2:

以下命令将排除隐藏文件夹,但会搜索具有所请求模式的隐藏文件:

find /home/tom/project/ \( ! -regex '.*/\..*/..*' \) -type f -name ".log.txt"
Run Code Online (Sandbox Code Playgroud)

编辑3:

grep 解决方案:) 如果这不起作用,我就迷路了:)

find /home/tom/project/ \( ! -regex '.*/\..*/..*' \) -exec grep -l ".log.txt" {} \;
Run Code Online (Sandbox Code Playgroud)

编辑4:

您尝试过简单的解决方案吗?

find /home/tom/project/ -type f -name ".log.txt"
Run Code Online (Sandbox Code Playgroud)

或者

find /home/tom/project/ -type f -name "*" -exec grep -l ".log.txt" {} \;
Run Code Online (Sandbox Code Playgroud)