我读到,如果您使用|命令,然后将第一个命令的输出传递给第二个命令的输入,那么为什么它起作用?
谢谢!
find -size 1033c | cd
答案 0 :(得分:4)
cd
命令不会读取标准输入,因此您传递给它的任何内容都将被忽略。
(实际上)最接近您的命令尝试执行的操作是:
cd `find -size 1033c`
...,除了您可能会“ cd”到文件(这将失败!)或找不到具有该大小的目录...导致您(无声地)将CD转到用户的主目录。
您的find
命令也缺少要搜索的目录!
根据您的评论,您尝试cd
到目录包含的给定大小的文件。如果我们可以假设只有一个这样的文件,那么以下应该起作用:
FILE=`find . -size 1033c -type f`
cd `dirname $FILE`
如果可能存在多个匹配项,则需要执行类似的操作...,该操作应与第一个匹配文件一起cd到目录。
FILE=`find . -size 1033c -type f -print -quit`
cd `dirname $FILE`