Вопрос Как найти каталог на linux?


У меня есть VPS с Suse Linux 10.3,

Я зарегистрировался через SSH / шпатлевка и я пытаюсь найти, где находятся мои веб-файлы.

Поскольку я загружаю через FTP в каталог, называемый httpdocs, Я предполагаю, что этот каталог существует где-то.

Мои поисковые запросы Google научили меня делать это, перейдите в мой корневой каталог и введите:

find httpdocs -type d

но он говорит:Данный файл или каталог отсутствует».

Как найти этот каталог?


396
2018-06-28 17:51


происхождения


В случае, если кто-то задается вопросом, команда в вопросе находит все каталоги (-type d) в записи каталога httpdocs (относительно текущего рабочего каталога, обычно, но не обязательно для каталога). Ошибка с сообщением об ошибке, потому что нет записи в каталоге httpdocs в корневом каталоге системы и, следовательно, нет отправной точки для поиска. - Daniel Beck♦


ответы:


Это:

find / -type d -name 'httpdocs'

первый параметр «/» - это то, где искать, в этом случае «/» - это вся система.

-name может быть -iname, чтобы игнорировать регистр

тоже-тип не является обязательным

использование: человек находит для дополнительных опций


543
2018-06-28 18:00



find / -name 'httpdocs' отлично работает - Edward Tanguay
Для простых поисков может не иметь значения, но для более сложных команд поиска стоит отметить, что вещи оцениваются в том порядке, в котором они находятся на командной строке. Таким образом, вы можете захотеть иметь -type d (только каталоги) before -name, чтобы ускорить работу. Опять же, это может не иметь большого значения здесь, но при переходе на более сложные поиски он может значительно улучшить скорость поиска. - Dominic Eidson
Фактически, -name тест быстрее, чем большинство других тестов, поскольку -name сопоставляется с листингом каталога, который уже загружен с диска, а другие тесты должны выполнять stat(2) для получения информации о файлах. После первого stat() вызов файла, последующие тесты получают из памяти, например: -type f -mtime -10, - Arcege
Если вы собираетесь выполнять поиск во всей файловой системе, особенно на сервере, тогда обычно полезно использовать niceпоэтому поиск не требует слишком много ресурсов из более важных процессов: nice find / ... - Arcege
Я бы добавил 2> / dev / null, чтобы избежать скрытия моих результатов поиска во всех ошибках разрешений. - Jason Yeo


эта команда должна получить то, что вы ищете:

find / -type d -name httpdocs

который будет искать из корня вашего сервера для каталогов с именем httpdocs или если вы просто хотите выполнить поиск из текущего каталога, замените '/' на.

Другая команда, которую вы можете попробовать, - найти, вы бы сделали что-то вроде:

locate httpdocs

59
2018-06-28 18:00



найти httpdocs говорит мне «locate: command not found» - Edward Tanguay
Для тех, кто использует команду «locate» (учитывая, что она существует в вашей системе), убедитесь, что эта база данных, которую он ищет, обновлена; обычно некоторые работы cron заботятся об этом. В противном случае запустите «updatedb» (root). Затем запустите необходимый «locate <somefile>». Это необходимо для поиска недавно добавленных файлов / dirs. - David Ramirez
+1 для поиска. Это много быстрее, но только если его индекс обновлен. К счастью, что-то вроде «httpdocs» не будет часто меняться. Если вы планируете многократно искать файлы на машине, стоит несколько минут, необходимых для настройки updateb cron. - Doug Harris
Также во многих случаях locate вернет слишком много результатов, поскольку все 100k-файлы в этом каталоге будут отображаться. В этом конкретном случае, если каждый пользователь имеет свои собственные httpdocs с 100 или 1000 файлами, результат, который захочет OP, вероятно, будет потерян. - Jistanidiot
+1 для поиска ... Я поддерживаю обновление базы данных, поэтому эта команда очень полезна ... Отличная идея. - nicorellius


find / -type d -name httpdocs 2> /dev/null

Это устранит все сообщения об ошибках, которые, скорее всего, будут (читайте, всегда), когда вы не сделаете это в качестве пользователя root. Порекомендую сделать это таким образом.


26
2017-11-08 01:04



2> /dev/null вариант очень полезен. В противном случае может быть трудно увидеть желаемые результаты ... - Gottlieb Notschnabel
Смотрите также Как я могу исключить все «отклоненные разрешения» сообщения из «find»? - galath


Важно знать параметр -iname для поиска «нечувствительных к регистру» шаблонов и использования подстановочных знаков: *,? И т. Д.

Два примера:

Поиск всех файлов из / root, который содержит строку «Linux», без учета регистра:

find  /root -type f -iname "*linux*"

Поиск всех каталогов из / root, который содержит строку «Linux», не учитывает регистр:

find  /root -type d -iname "*linux*"

Извлечено отсюда:

http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find.html


10
2017-12-06 23:50



Этот вопрос касается того, как найти каталог, имя которого вы знаете, а не как найти каталог, имя которого вы знаете (приблизительно). Кроме того, принятый ответ (более 6 лет назад!) Уже упоминает -iname как альтернатива без учета регистра -name, - G-Man


у вас почти есть это. правильный синтаксис:

find / -type d -name httpdocs

Каталог, вероятно, находится под /var/www/


9
2018-06-28 18:02



что говорит, что «пути должны предшествовать выражению» - Edward Tanguay