Почему grep -r также не просматривает подкаталоги, когда я ищу с глобусом? [дубликат]

Grep с -r у меня не работал.

Затем я создал тестовую ситуацию. В каталоге / home / den / backup теперь находится файл со словом washer . Я также создал подкаталог в / home / den / backup . В этом каталоге файл содержит слово шайба . Следующее должно вернуть два обращения к /home/den/backup/great.txt и /home/den/backup/aaa/info.txt

Если я выдам

grep -r "washer" /home/den/backup/*.*

результат это один удар.

Если я введу

grep -r "washer" /home/den/backup/aaa/*.*

, результат будет одно попадание.

Разве первый не должен был также найти второй, который находится в одном, если его подкаталоги?

6
задан 7 September 2018 в 00:11

1 ответ

Вы видите то, что происходит здесь путем установки оболочки в использование режима отладки set -x

$ set -x
$ grep -r "washer" /home/steeldriver/backup/*.*
+ grep --color=auto -r washer /home/steeldriver/backup/great.txt
washer

т.е. оболочка расширяется *.* и соответствуя единственному файлу great.txt - так grep поиски, что единственный файл.

Если Вы хотите рекурсивно искать целый каталог, просто дайте каталог как аргумент:

$ grep -r "washer" /home/steeldriver/backup/
+ grep --color=auto -r washer /home/steeldriver/backup/
/home/steeldriver/backup/aaa/info.txt:washer
/home/steeldriver/backup/great.txt:washer

(Можно выключить режим отладки снова с помощью set +x)

15
ответ дан 23 November 2019 в 07:19

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

Похожие вопросы: