Файл трубопроводов с находкой

Когда я запускаю команду cd dir && find . -name "*.html"он прекрасно отображает все HTML-файлы, включая HTML-файлы в подкаталогах. Но когда я запускаю команду cd dir && find . -name "*.html" | for f in *.html; do "action"; done только циклы для меня в текущем каталоге, но не изменяет HTML-файлы в подкаталогах. Я попытался включить поиск в цикл for, но только привел к сообщению об ошибке.

1 ответ

Решение

Вы можете переписать его как

cd dir && find . -name "*.html" | while read f; do "action"; done

когда ты сделал

... for f in *.html; ...

Вы, где на самом деле список HTML-файлов в текущем каталоге, это эквивалентно ls *.html на самом деле, а не фильтрация списка, полученного из канала (который игнорируется)

Другие вопросы по тегам