为什么递归grep显示';没有这样的文件或目录';错误?

为什么递归grep显示';没有这样的文件或目录';错误?,grep,symlink,Grep,Symlink,我正在浏览本地svn目录。当我运行grep-r“pattern”时,会出现一些错误,例如 grep:./Data/test:没有这样的文件或目录 谁要求grep查找不存在的文件 默认情况下,grep不会忽略不存在或不可读的文件。为此,您需要提供-s或--no messages选项。引用自曼格瑞普的话: 什么是/Data/test?当grep遇到指向不存在文件的符号链接时,它会抛出这种类型的错误。@j.w.r似乎是一个断开的符号链接(根据file命令)。不存在的示例的副本将是一个断开的符号链接。

我正在浏览本地svn目录。当我运行
grep-r“pattern”时,
会出现一些错误,例如

grep:./Data/test:没有这样的文件或目录

谁要求grep查找不存在的文件



默认情况下,grep不会忽略不存在或不可读的文件。为此,您需要提供
-s
--no messages
选项。引用自曼格瑞普的话:


什么是
/Data/test
?当grep遇到指向不存在文件的符号链接时,它会抛出这种类型的错误。@j.w.r似乎是一个断开的符号链接(根据file命令)。不存在的示例的副本将是一个断开的符号链接。不可读,顾名思义,是指当前用户没有读取权限的文件。
>grep --version
grep (GNU grep) 2.10

>lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
   -s, --no-messages
          Suppress  error  messages about nonexistent or unreadable files.
          Portability note: unlike GNU grep, 7th Edition Unix grep did not
          conform to POSIX, because it lacked -q and its -s option behaved
          like GNU grep's -q option.  USG-style grep also  lacked  -q  but
          its  -s  option  behaved  like GNU grep.  Portable shell scripts
          should avoid both -q and -s and  should  redirect  standard  and
          error output to /dev/null instead.  (-s is specified by POSIX.)