为什么 ls -d -R $PWD/* | 没有grep searchforthistext 可以工作,但是其组件的组合可以吗?

为什么 ls -d -R $PWD/* | 没有grep searchforthistext 可以工作,但是其组件的组合可以吗?

我尝试/使用 来ls -d -R $PWD/* | grep searchforthistext查找计算机中的任何目录或文件searchforthistext,并给我它们的绝对路径(因为简单地使用ls -R | grep searchforthistext只会列出目录和文件的名称,但不会显示它们在哪里)。由于某种原因,它什么也没做;它没有向我吐出错误消息,它只是找不到任何内容并进入下一行等待我的输入。

作为测试(在另一个目录中,以便我可以将显示的文件数量限制为测试的合理数量),我在ls -d -R $PWD/*没有 grep 的情况下运行;这项工作成功了。然后我跑了ls -d $PWD/* | grep searchforthistext,又成功了。我又做了一次测试ls -R | grep searchforthistext,并再次成功。

作为最后的测试,我尝试ls -d -R $PWD/* | grep searchforthistext并注意到它正在查找searchforthistext名称中带有 的文件并显示它们的绝对路径,但它不能递归工作(如此有效地运行,它执行与 相同的操作ls -d $PWD/* | grep searchforthistext)。

总而言之,在使用时,我可以成功使用,ls中的任意两个(因此它们中的两个不能一起工作似乎不是问题),但是当我一起尝试它们时,递归失败。我不知道这是为什么。-d $PWD/*-R| grep searchforthistext

相关内容