Нам нравится искать много каталогов в среде Windows с Cygwin. Мы пытались найти. -name * .txt -print
но он жалуется на предикат -print. Какова правильная команда тогда?
Нам нужны только совпадающие файлы, напечатанные на консоли.
Спасибо всем
Он жалуется, потому что вы не указали *.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"