在以下命令中,我只想搜索非隐藏的目录,如何使用以下命令执行此操作.Iwant在搜索日志文件时忽略隐藏目录
find /home/tom/project/ -name '.log.txt'
ls /home/tom/project/
dir1
dir2
.backup
.snapshot/
.ignore/
答案 0 :(得分:4)
尝试
find /home/tom/project -type d -name '.*' -prune -o -name .log.txt -print
答案 1 :(得分:1)
这将找到所有文件,但忽略那些以点开头隐藏文件的文件。
find /home/tom/project/ -type f \( -iname ".log.txt" ! -iname ".*" \)
编辑: 如果以上那些不起作用,这应该可行。它有一个更好的正则表达式。
find /home/tom/project/ \( ! -regex '.*/\..*' \) -type f -name ".log.txt"
EDIT2:
以下内容将排除隐藏文件夹,但会搜索具有所请求模式的隐藏文件:
find /home/tom/project/ \( ! -regex '.*/\..*/..*' \) -type f -name ".log.txt"
EDIT3:
grep解决方案:)如果这不起作用我迷路了:))
find /home/tom/project/ \( ! -regex '.*/\..*/..*' \) -exec grep -l ".log.txt" {} \;
EDIT4:
您是否尝试过简单的解决方案?
find /home/tom/project/ -type f -name ".log.txt"
OR
find /home/tom/project/ -type f -name "*" -exec grep -l ".log.txt" {} \;