find -name "?"
find ~ -name "?"
Почему одна из этих команд находит, .
а другая нет? Как сделать так, чтобы вторая версия с явным путем нашла запись .
вместе с любым другим односимвольным файлом в указанном каталоге?
find (GNU findutils) 4.5.11
если это имеет значение...
решение1
Без starting point
for find
он использует .
(текущий каталог). Фактически, эти две строки дадут идентичный вывод:
find -name "?"
find . -name "?"
Чтобы иметь возможность указать отправную точкуинайдите find
каталог .
, добавьте /.
в свою начальную точку, т.е.:
find ~/. -name "?"
Редактировать: Теперь, чтобы узнать почему, давайте сравним эти две команды:
find ~/. -name "?"
find ~ -name "?"
В их выводе есть два отличия. Во-первых, команда с /.
выдает результаты с дополнительным /.
в каждой строке, как и ожидалось. Во-вторых, и это был основной вопрос OP, команда /.
находит ~/.
сам псевдокаталог, но ~
команда не находит. Это потому, что ~/.
поиск явно запрашивает для .
поиска. Если он не указан в find
командной строке, find
игнорирует .
и ..
псевдокаталоги. (Можете себе представить, если бы это было не так?)
man find
Более подробную информацию см .