我正在尝试从目录中删除一些 .文件。因此,我首先尝试使用以下命令(进入目录后)class
计算可用文件的数量-.class
$ find . -name *.class | wc -l
在这里我可以理解流水线 (|) 的作用 - 命令/进程的输出find
作为命令的输入wc
(如果我错了,请纠正我)。上面的命令对我来说很好用,并产生了正确的输出。但是当我尝试使用class
以下命令删除所有 . 文件时,使用流水线 -
$ find . -name *.class | rm * # case-1
那么它就不起作用了。它显示以下错误 -
rm: cannot remove `<a_directory_name>': Is a directory
rm: cannot remove `<an_another_directory_name>': Is a directory
但当我使用它xargs
时它工作正常 -
$ find . -name *.class | xargs rm * # case-2
现在我的问题是谁能告诉我为什么case-1
工作正常但是却不工作case-2
?。
提前致谢。