Описание тега seasoning-pans
найти /и т. д. *
Не найдите файл с именем *
. Как он ведет себя, зависит, будет ли текущий каталог empty1.
- Если он пустой, то Shell расширяет
поиск /и т. д. *
для себя;найти
видит, что он сказал траверс двух каталогов/и т. д
И*
, и жалуется на то, что*
не существует (кроме перечисления всех файлов вфайл/etc
). Это то, что вы видите на Debian. - Если он не пустой, то Shell расширяет
поиск /и т. д. *
Чтобынайти файл /etc
следует список файлов в текущем каталоге. Чтобынайти
все файлы в/и т. д.
, а также все файлы в текущем каталоге, кроме текущего каталога. Это то, что вы видите на RHEL.
Разница не имеет ничего общего с распределением, вы проводите тест в разных контекстах на двух машинах.
Ничто из этого не имеет ничего общего с ищем файл с именем *
. Если вы хотите искать файл по имени, вы должны использовать имя
предиката: найти /и т. д.-название содержаться
. Аргумент -имя
- это подстановочный шаблон, как эти оболочки. Поскольку символ *
является подстановочным, для того, чтобы найдите файл с именем *
, вам необходимо защитить подстановки с обратным слешем: найти имя '\*'
. Обратите внимание на два уровня цитирую: одинарные кавычки, чтобы не допустить увеличения числа символов \
и *
оболочка (можно использовать найти -имя "\\*"
или найти -имя \\\*
а), так что найти
видит рисунок \*
, и обратной косой черты, так что картина “литерал *
” , а не “любая последовательность символов”.
*
является допустимым, но необычные, символов в именах файлов. Если вы не хотите, чтобы соответствовать персонажу, чье имя *
, но какой-то файл, то вы можете написать найти /и т. д.-имя '*'
(опять же, нужно цитировать *
так что это не расширены раковины), но это точно эквивалентно просто найти в /etc
.
1 точнее, является ли текущая директория содержит файлы, не файлов Dot, т. е. содержит ли он файлы, чье имя не начинается с .
.