有一个名为test的文件,测试中只有一行,haha
tiger@debian:~$ cat test
haha
tiger@debian:~$ cat 'test'
haha
为什么以下命令无法获取haha
?ls test
输出test
,为什么ls test |猫无法输出haha
?
tiger@debian:~$ ls test
test
ls test | cat
test
我的系统是debian + bash
答案 0 :(得分:2)
问题不在于管道本身,而是ls test
不输出文件test
的内容。 ls
列出目录内容。 ls test
只会输出test
。
如果您绝对希望使用竖线显示test
的内容,您可以使用:
cat test | xargs echo
答案 1 :(得分:1)
如果您确实想要显示该文件的内容,请尝试
ls test | xargs cat
答案 2 :(得分:0)
您可以查看“男人猫”
使用时
cat test
或cat 'test'
,shell假定第二个参数始终是文件名。
然而,对于管道,cat期望得到一堆文本,因此,“#”的内容是' ls'打印出来。