我尝试了以下两个cmd来显示当前目录下所有文件的内容。我想知道为什么一个有用,另一个没有。
ls | xargs cat # does not work, No such file or directory
find . | xargs cat # works
cat
只是一个示例,它可以是任何以文件名作为参数的cmd。
---------------------------------更新------------- --------------------
以下是我个人电脑的观察结果。
$ echo 1 > test1.txt
$ echo 2 > test2.txt
$ echo 3 > test3.txt
$ ls
test1.txt test2.txt test3.txt
$ ls *.txt | xargs cat
cat: test1.txt: No such file or directory
cat: test2.txt: No such file or directory
cat: test3.txt: No such file or directory
$ find . -name '*.txt' | xargs cat
2
1
3
答案 0 :(得分:0)
对于可能会看到此问题的其他人,我们在评论中发现了这个问题。郝的问题是,ls是一个别名,导致xargs管道出现问题。
使用'type ls',他们看到它有别名,并使用'\ ls'删除别名解决了问题。