答案1
无法回答“为什么可以grep
找到文件夹?”因为这个问题包含一个错误的前提。您看到的是某些文件的内容,而不是所检查文件的路径grep
。您的 grep 找到了看起来像路径的文本。grep 检查的文件的实际路径未打印;如果您不使用,您将看到它-h
。
-h
,--no-filename
压制输出中文件名的前缀。当只有一个文件(或只有标准输入)要搜索时,这是默认设置。
(来源:man 1 grep
,强调我的)
“为什么 root 无法查看此文件夹中的文件或cd
此文件夹中的文件?”的答案在您收到的错误消息中:没有这样的目录。也许这样的目录曾经是;或者它可能在另一台计算机上(所检查的文件grep
源自该计算机)。
例子:
$ echo '/nonexistent/path something' > file1
$ echo '/another/fake/path whatever' > file2
$
$ grep -h path file1 file2
/nonexistent/path something
/another/fake/path whatever
$
$ grep path file1 file2
file1:/nonexistent/path something
file2:/another/fake/path whatever
$
file1
和file2
是现有文件的路径。/nonexistent/path
并且/another/fake/path
只是在文件中找到的字符串。它们看起来像路径,但这并不意味着路径存在于文件层次结构中。