[英]Bash command using xargs and xargs -0
我只是发现两个命令之间的区别:
echo sum.txt| xargs cat
这将输出sum.txt的内容
echo sum.txt| xargs -0 cat
这显示错误:
cat: sum.txt
: No such file or directory
我知道-0将空字节视为定界符。 我认为新行以:开头是因为echo命令会产生新行。 并且不会产生如下输出:
cat: sum.txt: No such file or directory
但是,如果echo产生换行符,那么第一个命令为什么可以成功? 因为xargs默认使用空格作为定界符。
我认为,如果您用echo -n
代替cat
作为实验,将会更加清楚。
echo sum.txt| xargs echo -n
echo sum.txt | xargs -0 echo -n
在第一个示例中, xargs
在换行符处中断并丢弃换行符 ,仅sum.txt
。
在第二个示例中, xargs
在第一个echo
的输出结尾处的EOF结尾处中断,从而产生字符串'sum.txt\\n'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.