Мне нужна команда unix, чтобы перечислять все файлы, содержащие «foo» в их имени? У нас есть две команды, которые делают это: команда grep и команда find !! , что лучше?Команда Unix для поиска всех файлов
Thanks
Мне нужна команда unix, чтобы перечислять все файлы, содержащие «foo» в их имени? У нас есть две команды, которые делают это: команда grep и команда find !! , что лучше?Команда Unix для поиска всех файлов
Thanks
find
команда сама по себе достаточно (если вы не хотите включать файлы в каталогах, чье имя включает "Foo"):
find/-type f -name '*foo*'
Это проверяет лист имя (последняя часть) путей. Если вы конвейеру результат find
через grep
подобным образом:
find/-type f | grep foo
он будет соответствовать этим файлам, а также все файлы (и каталоги) внутри каталогов, имя которых включает в себя «Foo».
Чтобы отфильтровать список более интересным способом, вы можете использовать grep
, который поддерживает регулярные выражения и другие функции. Например, вы можете сделать
find/-type f | grep -i foo
, чтобы соответствовать "foo" игнорируя случай.
Но если вы хотите взглянуть на содержание файлов, то есть Grep-конкретны:
find/-type f -exec grep foo {} +
Дальнейшее чтение:
Используйте поиск, чтобы показать все файлы в системе.
Соедините с grep, чтобы найти определенное имя файла.
так:
find/-type f -exec grep -i -r "*foo*" {}
хороший просмотр & информация! – obi1