我尝试使用cd
和ls
这样的管道:
ls -l | cd /home/user/someDir
但没有任何反应。
我试过了:
cd /home/user/someDir | ls -l
似乎cd
命令不执行任何操作,而ls -l
将在当前目录中起作用。
我尝试打开的目录有效。
为什么?是否可以使用cd
/ ls
管道命令?
使用管道时,其他命令没有任何问题。
答案 0 :(得分:9)
cd
不接受任何输入并且不产生输出;因此,在管道中使用它是没有意义的(它从左命令获取输出并将其作为输入传递给右命令)。
您在寻找ls -l ; cd /somewhere
吗?
另一个选项(如果您需要列出目标目录)是:
cd /somewhere && ls -l
'&&'如果目标目录不存在,这将阻止执行第二个命令(ls -l)。