Ubuntu нет папки usr

Обновлено: 04.07.2024

Одна из проблем, с которой сталкиваются пользователи, впервые изучающие работу с Linux, – поиск нужных файлов.

В этом руководстве рассказывается, как использовать команду find с подходящим названием. Это поможет вам искать файлы в вашей системе, используя различные фильтры и параметры. Также будет кратко рассмотрена команда locate, которую можно использовать для поиска файлов другим способом.

Предпосылки

Чтобы следовать этому руководству, вам потребуется доступ к компьютеру с операционной системой на базе Linux. Это может быть либо виртуальный частный сервер, к которому вы подключились с помощью SSH, либо ваша локальная машина. Обратите внимание, что это руководство было проверено с использованием сервера Linux с Ubuntu 20.04, но приведенные примеры должны работать на компьютере с любой версией любого дистрибутива Linux.

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

Кроме того, вы можете использовать интерактивный терминал, встроенный в эту страницу, чтобы поэкспериментировать с примерами команд из этого руководства. Щелкните следующее Запустить интерактивный терминал! кнопку, чтобы открыть окно терминала и начать работу в среде Linux (Ubuntu).

Запустите интерактивный терминал!

Примечание. Чтобы проиллюстрировать, как работают команды find и locate, приведенные в этом руководстве примеры команд выполняют поиск файлов, хранящихся в папке / или в корневом каталоге. Из-за этого, если вы вошли в терминал как пользователь без полномочий root, некоторые из примеров команд могут содержать в своем выводе Отказ в доступе.

Этого следовало ожидать, поскольку вы ищете файлы в каталогах, к которым у обычных пользователей обычно нет доступа. Тем не менее, эти примеры команд должны по-прежнему работать и быть полезными для понимания того, как работают эти программы.

Поиск по имени

Самый очевидный способ поиска файлов — по имени.

Чтобы найти файл по имени с помощью команды find, используйте следующий синтаксис:

Это будет чувствительно к регистру, то есть поиск по запросу отличается от поиска по запросу .

Чтобы найти файл по имени, но игнорировать регистр запроса, используйте параметр -iname:

Если вы хотите найти все файлы, которые не соответствуют определенному шаблону, вы можете инвертировать поиск, указав -not :

Кроме того, вы можете инвертировать поиск, используя восклицательный знак ( ! ), например:

Обратите внимание, что если вы используете ! , вы должны экранировать символ обратной косой чертой ( \ ), чтобы оболочка не пыталась интерпретировать его до того, как find сможет действовать.

Поиск по типу

Вы можете указать тип файлов, которые хотите найти, с помощью параметра -type. Это работает следующим образом:

Вот некоторые дескрипторы, которые можно использовать для указания типа файла:

  • f : обычный файл
  • d : каталог
  • l : символическая ссылка
  • c : символьные устройства
  • b : заблокировать устройства

Например, если вы хотите найти все символьные устройства в вашей системе, вы можете ввести следующую команду:

Эта команда ищет устройства только в каталоге /dev, в котором файлы устройств обычно монтируются в системах Linux:

Вы можете найти все файлы, оканчивающиеся на .conf, с помощью следующей команды. В этом примере выполняется поиск соответствующих файлов в каталоге /usr:

Примечание. В предыдущем примере объединены два выражения запроса поиска; а именно, -type f и -name "*.conf" . Чтобы любой файл был возвращен, он должен удовлетворять обоим этим выражениям.

Вы можете комбинировать подобные выражения, разделяя их опцией -and, но, как показано в этом примере, -and подразумевается каждый раз, когда вы включаете два выражения. Вы также можете вернуть результаты, удовлетворяющие любому выражению, разделив их опцией -or:

В этом примере будут найдены все файлы, имена которых соответствуют запросу query_1 или query_2 .

Фильтрация по времени и размеру

find предоставляет множество способов фильтрации результатов по размеру и времени.

Вы можете фильтровать файлы по их размеру, используя параметр -size. Для этого вы должны добавить специальный суффикс в конце числового значения размера, чтобы указать, рассчитываете ли вы размер в байтах, мегабайтах, гигабайтах или другом размере. Вот некоторые часто используемые суффиксы размера:

  • c : байты
  • k : килобайты
  • M : мегабайты
  • G : гигабайты
  • b : блоки по 512 байт.

Для иллюстрации следующая команда найдет все файлы в каталоге /usr размером ровно 50 байт:

Чтобы найти файлы размером менее 50 байт, можно использовать следующий синтаксис:

Чтобы найти в каталоге /usr файлы размером более 700 мегабайт, можно использовать следующую команду:

Для каждого файла в системе Linux хранит временные данные о времени доступа, времени модификации и времени изменения.

Время доступа: время последнего чтения или записи файла.

Время модификации: время последнего изменения содержимого файла.

Время изменения: время последнего изменения метаданных индексного дескриптора файла.

Вы можете основывать свои поисковые запросы на этих параметрах, используя параметры -atime , -mtime и -ctime соответственно. Для любого из этих параметров вы должны указать значение, указывающее, сколько дней в прошлом вы хотите выполнить поиск. Как и в случае с параметрами размера, описанными ранее, перед этими параметрами можно поставить символы плюс или минус, чтобы указать «больше» или «меньше».

Например, чтобы найти файлы в каталоге /usr, которые были изменены за последний день, выполните следующую команду:

Если вам нужны файлы, к которым обращались менее суток назад, вы можете запустить эту команду:

Чтобы найти файлы, метаинформация которых была изменена более 3 дней назад, можно выполнить следующее:

У этих параметров также есть сопутствующие параметры, которые можно использовать для указания минут вместо дней:

Это даст файлы, которые были изменены за последнюю минуту.

find также может выполнять сравнение с эталонным файлом и возвращать более новые файлы:

Этот синтаксис вернет все файлы в системе, которые были созданы или изменены позже эталонного файла.

Поиск по владельцу и разрешениям

Вы также можете искать файлы по пользователю или группе, которой принадлежит файл, используя параметры -user и -group соответственно. Чтобы найти все файлы в каталоге /var, принадлежащие пользователю syslog, выполните следующую команду:

Аналогичным образом вы можете указать файлы в каталоге /etc, принадлежащие теневой группе, набрав:

Вы также можете искать файлы с определенными разрешениями.

Если вы хотите сопоставить точный набор разрешений, вы можете использовать этот синтаксис, указав разрешения с помощью восьмеричной записи:

Это будет соответствовать файлам с точно указанными разрешениями.

Если вы хотите указать что-либо с хотя бы этими разрешениями, вы можете поставить перед обозначением разрешений знак минус:

Это будет соответствовать любым файлам, имеющим дополнительные разрешения. В этом случае будет найден файл с правами доступа 744.

Фильтрация по глубине

В этом разделе вы создадите примерную структуру каталогов, которую затем будете использовать для изучения фильтрации файлов по их глубине внутри структуры.

Если вы следуете примерам из этого руководства, было бы разумно создать эти файлы и каталоги в каталоге /tmp/. /tmp/ — это временный каталог, что означает, что любые файлы и каталоги в нем будут удалены при следующей загрузке сервера. Это будет полезно для целей данного руководства, поскольку вы можете создать столько каталогов, файлов и ссылок, сколько захотите, не беспокоясь о том, что они впоследствии засорят вашу систему.

После выполнения команд в этом разделе ваш каталог /tmp/ будет содержать три уровня каталогов с десятью каталогами на первом уровне. Каждый каталог (включая временный каталог) будет содержать десять файлов и десять подкаталогов.

Создайте примерную структуру каталогов в каталоге /tmp/ с помощью следующей команды:

После этого заполните эти каталоги несколькими образцами файлов с помощью команды touch:

Установив эти файлы и каталоги, перейдите в только что созданный каталог test/:

Чтобы получить общее представление о том, как find будет извлекать файлы из этой структуры, начните с обычного поиска по имени, который соответствует любому файлу с именем file1 :

Это вернет много результатов. Если вы направите вывод в счетчик, вы обнаружите, что всего 1111 результатов:

Возможно, это слишком много результатов, чтобы быть полезными для вас в большинстве случаев. Чтобы сузить его, вы можете указать максимальную глубину поиска в каталоге поиска верхнего уровня:

Чтобы найти файл1 только в каталогах уровня 1 и выше, вы можете указать максимальную глубину 2 (1 для каталога верхнего уровня и 1 для каталогов уровня 1):

Это гораздо более управляемый список.

Вы также можете указать минимальный каталог, если знаете, что все файлы существуют после определенного момента в текущем каталоге:

Вы можете использовать это, чтобы найти только файлы в конце ветвей каталога:

Опять же, из-за разветвленной структуры каталогов будет возвращено большое количество результатов (1000).

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

Такое сочетание этих параметров значительно сужает результаты: возвращается только 110 строк вместо прежних 1 000.

Выполнение команд по результатам поиска

Вы можете выполнить произвольную вспомогательную команду для всего, что находит совпадения, используя параметр -exec, используя следующий синтаксис:

Кнопка <> используется в качестве заполнителя для файлов, которые находят совпадения. \; позволяет найти, где заканчивается команда.

Например, предположив, что вы все еще находитесь в каталоге test/, который вы создали в каталоге /tmp/ на предыдущем шаге, вы можете найти файлы в предыдущем разделе, у которых были разрешения 644, и изменить их, чтобы они имели разрешения 664:

Вы также можете изменить права доступа к каталогу аналогичным образом:

В этом примере выполняется поиск всех каталогов с разрешениями, установленными на 755, а затем изменяются разрешения на 700 .

Поиск файлов с помощью locate

Альтернативой использованию find является команда locate. Эта команда часто выполняется быстрее и может с легкостью выполнять поиск по всей файловой системе.

Вы можете установить эту команду в Debian или Ubuntu с помощью apt, обновив списки пакетов и затем установив пакет mlocate:

В Rocky Linux, CentOS и других дистрибутивах, производных от RedHat, вы можете вместо этого использовать команду dnf для установки mlocate:

Причина, по которой locate работает быстрее, чем find, заключается в том, что он опирается на базу данных, в которой перечислены все файлы в файловой системе. Эта база данных обычно обновляется один раз в день с помощью cron-скрипта, но вы можете обновить ее вручную с помощью команды updatedb. Запустите эту команду сейчас с привилегиями sudo:

Помните, что база данных локации всегда должна быть актуальной, если вы хотите найти новые файлы. Если вы добавите новые файлы до выполнения сценария cron или до запуска команды updatedb, они не будут отображаться в результатах вашего запроса.

locate позволяет фильтровать результаты несколькими способами. Самый простой способ использовать его для поиска файлов — использовать следующий синтаксис:

Это будет соответствовать любым файлам и каталогам, которые содержат строковый запрос в любом месте их пути к файлу. Чтобы возвращать только файлы, имена которых содержат сам запрос, вместо каждого файла, содержащего запрос в каталогах, ведущих к нему, вы можете включить флаг -b для поиска только тех файлов, чье «базовое имя» соответствует запросу:

Чтобы функция locate возвращала только те результаты, которые все еще существуют в файловой системе (имеются в виду файлы, которые не были удалены между последним вызовом updateb и текущим вызовом locate), используйте флаг -e:

Вы можете получить статистику по каталогизированной информации locate с помощью параметра -S:

Это может быть полезно для получения общего представления о том, сколько файлов и каталогов существует в вашей системе.

Заключение

Команды find и locate являются полезными инструментами для поиска файлов в вашей системе. Обе являются мощными командами, которые можно усилить, комбинируя их с другими утилитами через конвейеры, но вам решать, какой инструмент подходит для вашей конкретной ситуации.

С этого момента мы рекомендуем вам продолжать экспериментировать с поиском и размещением . Вы можете прочитать их соответствующие справочные страницы, чтобы узнать о других параметрах, не описанных в этом руководстве, и вы можете анализировать результаты поиска и управлять ими, перенаправляя их в другие команды, такие как wc , sort и grep .

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.

Как открыть BIN-файл usr?

Способ 1. Найдите папку bin с помощью Finder

  1. Открыть Finder.
  2. Нажмите Command+Shift+G, чтобы открыть диалоговое окно.
  3. Введите следующий поиск: /usr/local/bin.
  4. Теперь у вас должен быть временный доступ, поэтому вы сможете перетащить его в избранное Finder, если хотите снова получить к нему доступ.

Что такое каталог usr в Linux?

Каталог /usr состоит из нескольких подкаталогов, содержащих дополнительные команды UNIX и файлы данных. Это также место по умолчанию для домашних каталогов пользователей. Каталог /usr/bin содержит больше команд UNIX. Эти команды используются реже или считаются несущественными для работы системы UNIX.

Где находится usr local bin Linux?

/usr/bin — это место, куда помещаются двоичные файлы, поставляемые операционной системой. /usr/local/bin — это место, куда помещаются двоичные файлы, предоставленные пользователем. Когда вы вводите имя команды в командной строке, оболочка ищет указанную команду в путях, содержащихся в переменной среды $PATH, по порядку.

Что такое каталог usr в Ubuntu?

/usr: содержит все пользовательские программы (/usr/bin), библиотеки (/usr/lib), документацию (/usr/share/doc) и т. д. Это часть файловой системы, которая обычно занимает большую часть пространство. Вы должны предоставить не менее 500 МБ свободного места на диске.

Что такое .local в Linux?

<р>1. Цель. Иерархия /usr/local предназначена для использования системным администратором при локальной установке программного обеспечения.Он должен быть защищен от перезаписи при обновлении системного программного обеспечения. Его можно использовать для программ и данных, которые являются общими для группы хостов, но не находятся в /usr .

Что такое usr для Linux?

Иерархия /usr/local предназначена для использования системным администратором при локальной установке программного обеспечения. Он должен быть защищен от перезаписи при обновлении системного программного обеспечения. Его можно использовать для программ и данных, которые являются общими для группы хостов, но не находятся в /usr.

В чем разница между usr и usr local?

В таких дистрибутивах, как Ubuntu, /usr — это место, куда пакеты должны устанавливать компоненты, а /usr/local — место, где системный администратор может устанавливать компоненты вне системы пакетов. Из стандарта иерархии файловой системы: иерархия /usr/local предназначена для использования системным администратором при локальной установке программного обеспечения.

Что такое sbin в Linux?

/sbin — это стандартный подкаталог корневого каталога в Linux и других Unix-подобных операционных системах, который содержит исполняемые (т. е. готовые к запуску) программы. В основном это административные инструменты, которые должны быть доступны только пользователю root (т. е. администратору).

Как показать все каталоги в Ubuntu?

Команда «ls» отображает список всех каталогов, папок и файлов, присутствующих в текущем каталоге.

Как получить текущий каталог в терминале?

Чтобы увидеть их в терминале, используйте команду «ls», которая используется для вывода списка файлов и каталогов. Итак, когда я набираю «ls» и нажимаю «Enter», мы видим те же папки, что и в окне Finder.

Как составить список файлов в Linux?

Самый простой способ получить список файлов по имени – это просто вывести их список с помощью команды ls. В конце концов, список файлов по имени (буквенно-цифровой порядок) используется по умолчанию. Вы можете выбрать ls (без подробностей) или ls -l (много подробностей), чтобы определить свое представление.

Иерархия /usr/local предназначена для использования системным администратором при локальной установке программного обеспечения. Он должен быть защищен от перезаписи при обновлении системного программного обеспечения. Его можно использовать для программ и данных, которые являются общими для группы хостов, но не находятся в /usr .

Локально установленное программное обеспечение должно быть помещено в /usr/local, а не в /usr, если только оно не устанавливается для замены или обновления программного обеспечения в /usr . [28]

4.9.2. Требования

Следующие каталоги или символические ссылки на каталоги должны находиться в /usr/local

КаталогОписание
bin Локальные двоичные файлы
и т. д. Конфигурация системы для локальных двоичных файлов
игр Локальные двоичные файлы игр< /td>
включить Локальные файлы заголовков C
lib Локальные библиотеки
man Локальные онлайн-руководства
sbin Двоичные файлы локальной системы
общий доступ Локальная независимая от архитектуры иерархия
источник Локальный исходный код

Никакие другие каталоги, кроме перечисленных ниже, не могут находиться в /usr/local после первой установки системы, совместимой с FHS.

4.9.3. Особые параметры

Если существуют каталоги /lib или /usr/lib, эквивалентные каталоги также должны существовать в /usr/local .

/usr/local/etc может быть символической ссылкой на /etc/local .

Обоснование

Последовательность /usr/local/etc полезна для установщиков и уже используется в других системах. Поскольку для воспроизведения системы требуется резервное копирование всего /usr/local, это не требует дополнительных затрат на обслуживание, но символическая ссылка на /etc/local подходит, если системы хотят, чтобы вся их конфигурация находилась в одной иерархии.

Обратите внимание, что использование /usr/etc по-прежнему запрещено: программы в /usr должны помещать файлы конфигурации в /etc .

Если каталог /usr/share/color существует, как указано в этом документе, то каталог /usr/local/share/color также должен существовать, подчиняясь тем же правилам, что и /usr/share/color .

Обоснование

Такое использование позволяет системному администратору устанавливать цветовые профили вручную, когда это необходимо.

4.9.4. /usr/local/share : локальная независимая от архитектуры иерархия

Требования к содержимому этого каталога такие же, как и для /usr/share.

[28] Программное обеспечение, помещенное в / или /usr, может быть перезаписано обновлением системы (хотя мы рекомендуем, чтобы дистрибутивы не перезаписывали данные в /etc при таких обстоятельствах). По этой причине локальное программное обеспечение нельзя размещать за пределами /usr/local без уважительной причины.

Ubuntu придерживается стандарта иерархии файловой системы для именования каталогов и файлов.Этот стандарт позволяет пользователям и программам предсказывать расположение файлов и каталогов. Каталог корневого уровня представлен просто косой чертой / . На корневом уровне все системы Ubuntu включают следующие каталоги:

< td>Важные двоичные файлы команд < /tr> < td>srv < /tr>
Каталог Содержимое
bin
boot Статические файлы загрузчика
dev Файлы устройств
etc Конфигурация системы для конкретного хоста
home< /td> Домашние каталоги пользователей
lib Основные общие библиотеки и модули ядра
media Содержит точки монтирования для сменных носителей
mnt Точка монтирования для временного монтирования файловой системы
proc Виртуальный каталог для системной информации
root Домашний каталог для пользователя root
run Данные переменных времени выполнения
sbin Обязательный системные двоичные файлы
sys Виртуальный каталог для системной информации
tmp Временные файлы
usr Вторичная иерархия
var Переменные данные
Данные для услуг, предоставляемых системой
opt Дополнительные пакеты приложений

Ниже приведен список важных соображений относительно каталогов и разделов. Обратите внимание, что использование диска сильно различается в зависимости от конфигурации системы и конкретных моделей использования. Приведенные здесь рекомендации являются общими и служат отправной точкой для разделения.

Корневой раздел / всегда должен физически содержать /etc , /bin , /sbin , /lib и /dev , иначе вы не сможете загрузиться. Обычно для корневого раздела требуется 150–310 МБ.

/usr: содержит все пользовательские программы (/usr/bin), библиотеки (/usr/lib), документацию (/usr/share/doc) и т. д. Это часть файловой системы, которая обычно занимает большую часть пространство. Вы должны предоставить не менее 500 МБ дискового пространства. Эта сумма должна быть увеличена в зависимости от количества и типа пакетов, которые вы планируете установить. Установка большого сервера должна позволять 4–6 ГБ.

Теперь рекомендуется иметь /usr в корневом разделе / ​​, иначе это может вызвать некоторые проблемы во время загрузки. Это означает, что вы должны предоставить не менее 600–750 МБ дискового пространства для корневого раздела, включая /usr , или 5–6 ГБ для установки на рабочей станции или сервере.

Теперь рекомендуется иметь /usr в корневом разделе / ​​, иначе это может вызвать некоторые проблемы во время загрузки. Это означает, что вы должны предоставить не менее 600–750 МБ дискового пространства для корневого раздела, включая /usr , или 5–6 ГБ для установки на рабочей станции или сервере.

/var : переменные данные, такие как новостные статьи, электронные письма, веб-сайты, базы данных, системный кэш пакетов и т. д., будут помещены в этот каталог. Размер этого каталога сильно зависит от использования вашей системы, но для большинства людей он будет определяться накладными расходами инструмента управления пакетами. Если вы собираетесь выполнить полную установку почти всего, что может предложить Ubuntu, за один сеанс, выделение 2 или 3 ГБ пространства для /var должно быть достаточным. Если вы собираетесь устанавливать по частям (то есть устанавливать службы и утилиты, за которыми следует текст, затем X, . ), вы можете обойтись 300–500 МБ. Если места на жестком диске не хватает, и вы не планируете выполнять серьезные обновления системы, можно обойтись всего 30–40 МБ.

/tmp : временные данные, созданные программами, скорее всего, будут храниться в этом каталоге. Обычно достаточно 40–100 МБ. Некоторые приложения, в том числе манипуляторы архивов, инструменты для создания CD/DVD и мультимедийное программное обеспечение, могут использовать /tmp для временного хранения файлов изображений. Если вы планируете использовать такие приложения, вам следует соответствующим образом отрегулировать доступное пространство в /tmp.

/home : каждый пользователь будет помещать свои личные данные в подкаталог этого каталога. Его размер зависит от того, сколько пользователей будет использовать систему и какие файлы будут храниться в их каталогах. В зависимости от вашего запланированного использования вы должны зарезервировать около 100 МБ для каждого пользователя, но адаптируйте это значение к своим потребностям. Зарезервируйте намного больше места, если вы планируете сохранять много мультимедийных файлов (изображения, MP3, фильмы) в своем домашнем каталоге.

Читайте также: