在Linux上的非隐藏目录中查找文件

在Linux上的非隐藏目录中查找文件

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

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

输出:

    /home/tom/project/.log.txt
    /home/tom/project1/.log.txt

     find: Filesystem loop detected; ./.snapshot/hourly.0' has the same device number and inode as a directory which is 2 levels higher in the filesystem hierarchy. 
     find: Filesystem loop detected; ./.snapshot/hourly.1' has the same device number and inode as a directory which is 2 levels higher in the filesystem hierarchy.

我想消除所有查找消息或不在隐藏目录中搜索

  ls /home/tom/project/  
  dir1   
  dir2  
 .backup 
 .snapshot/
 .ignore/ 

答案1

如果你只想忽略错误消息,那么将 stdout 重定向到文件或 /dev/null

find /home/tom/project/ -name '.log.txt' 2>/dev/null

如果您对其他错误消息感兴趣,但对问题中提到的特定消息不感兴趣,则通过 grep -v 管道输出

find /home/tom/project/ -name '.log.txt' | grep -v 'Filesystem loop detected'

答案2

尝试
find . -name '.log.txt' ! -wholename ".*.*/.log.txt"

查找所有名称为 .log.txt 的文件,但还要确保文件完整路径在文件夹部分不包含多个点。第一个点是当前目录。

如果提供的不是当前目录,而是绝对路径,请使用以下命令
find . -name '.log.txt' ! -wholename "*.*/.log.txt"

相关内容