我只是发现了两个命令之间的区别:
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默认使用空格作为分隔符。
发布于 2017-06-13 14:22:35
我认为,如果您将cat替换为echo -n作为一个实验,将会发生什么事情会变得更加清晰。
echo sum.txt| xargs echo -n
echo sum.txt | xargs -0 echo -n在第一个示例中,xargs在换行符上换行并丢弃换行符,只留下sum.txt。
在第二个示例中,xargs在EOF的结尾处第一个echo的输出结尾处换行,从而产生字符串'sum.txt\n'。
https://stackoverflow.com/questions/44513592
复制相似问题