Нам нравится искать много каталогов в среде Windows с Cygwin. Мы пытались найти. -name * .txt -print

но он жалуется на предикат -print. Какова правильная команда тогда?

Нам нужны только совпадающие файлы, напечатанные на консоли.

Спасибо всем

1 ответ1

3

Он жалуется, потому что вы не указали *.txt поэтому оболочка расширяет шаблон, а не передает его для find . Другими словами, предположим, что вы находитесь в каталоге, который содержит эти файлы:

 foo.txt bar.txt baz.txt

Когда вы говорите, find . -name *txt -print подстановочный знак (*) расширяется оболочкой (вероятно, bash), поэтому на самом деле передается f find :

find . -name foo.txt bar.txt baz.txt -print

Это слишком много аргументов и find жалобы. Чтобы получить то, что вы хотите, вам нужно процитировать шаблон, который вы ищете (вам также не нужен -print для того, что вы делаете):

 find . -name "*txt"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .