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)
这将找到所有文件,但忽略那些以点开头的文件,从而隐藏文件。
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)