Я намагаюся видалити деякі. 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працює добре? .
Заздалегідь спасибі.