加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

unix – 为什么不将文件名列表导入cat?

发布时间:2020-12-16 01:36:53 所属栏目:安全 来源:网络整理
导读:cat没有从管道输入中获取文件名列表的设计原理是什么?为什么设计师选择以下不起作用? ls *.txt | cat 而不是这样,他们选择我们需要将文件名作为参数传递给cat: ls *.txt | xargs cat 当你说ls * .txt |猫不工作,你应该说这不会像你期望的那样工作.事实上,
cat没有从管道输入中获取文件名列表的设计原理是什么?为什么设计师选择以下不起作用?
ls *.txt | cat

而不是这样,他们选择我们需要将文件名作为参数传递给cat:

ls *.txt | xargs cat
当你说ls * .txt |猫不工作,你应该说这不会像你期望的那样工作.事实上,它的工作方式与它的工作方式相同.

来自男人:

cat - Concatenate FILE(s),or standard input,to standard output

假设下一个输出:

$ls *.txt
file1.txt
file2.txt

… cat的输入将是:

file1.txt
file2.txt

……这正是标准输出中猫的输出

在某些shell中,它相当于:

cat <(ls *.txt)

要么

ls *.txt > tmpfile; cat tmpfile

因此,猫正在按照他们的设计师所希望的那样工作.

另一方面,你期望的是cat将其输入解释为一组文件名来读取和连接它们的内容,但是当你输入cat时,那个输入就像一个孤独的文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读