как узнать расположение файла linux
Как найти файлы в Linux с помощью командной строки
How to Find Files in Linux Using the Command Line
Вы можете использовать find команду для поиска файлов и каталогов на основе их прав доступа, типа, даты, владельца, размера и т. Д. Его также можно использовать в сочетании с другими инструментами, такими как grep или sed.
Команда find является одним из самых мощных инструментов в арсенале системных администраторов Linux. Он ищет файлы и каталоги в иерархии каталогов на основе заданного пользователем выражения и может выполнять заданные пользователем действия для каждого соответствующего файла.
Синтаксис команды find Linux
Общий синтаксис find команды выглядит следующим образом:
Для поиска файлов в каталоге пользователь, вызывающий find команду, должен иметь разрешения на чтение для этого каталога.
Давайте посмотрим на следующий пример:
Найти файлы по имени
Например, для поиска файла с именем document.pdf в /home/baks каталоге вы должны использовать следующую команду:
Найти файлы по расширению
Важно отметить, что когда вы используете подстановочный знак, вы должны либо заключить шаблон в кавычки, либо экранировать * символ звездочки с помощью обратной косой черты, \ чтобы она не интерпретировалась оболочкой.
Поиск файлов по типу
Иногда вам может потребоваться поиск файлов определенного типа, таких как обычные файлы, каталоги или символические ссылки. В Linux все это файл.
Распространенным примером может быть рекурсивное изменение разрешений на доступ к файлам на веб-сайте 644 и на 755 использование каталогов с помощью chmod команды
Найти файлы по размеру
Следующая команда найдет все файлы с точно 1024 байтами внутри /tmp каталога:
Команда find также позволяет вам искать файлы, которые больше или меньше указанного размера.
Вы даже можете искать файлы в диапазоне размеров. Следующая команда найдет все файлы между 1 и 2MB :
Поиск файлов по дате изменения
find также может искать файлы на основе их последнего изменения, доступа или изменения времени.
То же, что и при поиске по размеру, используйте символы «плюс» и «минус» для «больше чем» или «меньше чем».
Найти файлы по разрешениям
-perm Опция позволяет искать файлы на основе прав доступа к файлам.
Например, чтобы найти все файлы с разрешениями именно 775 внутри /var/www/html каталога, вы должны использовать:
Рассмотрим следующий пример команды:
Приведенная выше команда сопоставит все файлы с правами на чтение, установленными для пользователя, группы или других пользователей.
Найти файлы по владельцу
Найти и удалить файлы
Вывод
Мы показали вам, как использовать find команду с различными параметрами и критериями.
Эта статья должна дать вам фундаментальное понимание того, как найти файлы в ваших системах Linux. Вы также можете посетить find страницу руководства и прочитать обо всех других мощных опциях find команды.
Поиск в Linux с помощью команды find
Утилита find представляет универсальный и функциональный способ для поиска в Linux. Данная статья является шпаргалкой с описанием и примерами ее использования.
Общий синтаксис
— путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».
— набор правил, по которым выполнять поиск.
* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.
Описание опций
Опция | Описание | |||||
---|---|---|---|---|---|---|
-name | Поиск по имени. | |||||
-iname | Регистронезависимый поиск по имени. | |||||
-type |
. | поиск в текущем каталоге; |
/ | поиск от корневого каталога; |
поиск в домашнем каталоге. |
Основные опции команды find.
Примеры использования команды find.
Самый простой вариант поиска, указываем путь и имя файла. Давайте найдем файл с именем file1:
Но если мы напишем не полностью имя, например «file», то файл с именем «file1» не найдется. Для этого нужно писать имя в кавычках и в конце добавить *, вот таким образом:
Но теперь нашлись файлы во всех вложенных директориях. А что если нам надо найти файл только в текущей директории или с уровнем вложенности 1 или 2?
Для этого используется опция maxdepth (глубина поиска), то есть, если мы хотим найти файл в директории поиска, без рекурсивного просмотра всех директорий:
Теперь нашлись файлы только в директории поиска.
Если хотим включить первый уровень внутри каталога поиска, тогда нужно указать maxdepth 2:
Как видно на скриншоте, теперь найден файл и в папке «Загрузки».
Нужно указывать опцию -maxdepth перед опцией -name.
Теперь разберем очень важную опцию поиска файла по размеру «-size».
Важно, если мы хотим найти файлы размером в килобайтах, нужно писать в конце k, для мегабайт M, для гигабайт G, для байт b. Важно соблюдать регистр.
Разберем пример, найдем файлы в домашней директории менее 10 килобайт с именем file*:
Нашлись все файлы в домашней директории и ее папках, размер которых менее 10 килобайт.
Теперь давайте найдем файлы в домашней директории, которые весят больше 100 мегабайт:
Нашелся один файл, который весит более 100 мегабайт.
Также можно искать файлы определенного размера, например, которые весят 1G или 1M:
Теперь переходим к поиску файлов, которые были созданы или модифицированы n количество дней назад.
Поиск файлов, которые были изменены или созданы менее 2 дней назад:
Также можно использовать опцию -user, чтобы найти только файлы определенного пользователя:
Возможности команды find поистине безграничны, мы можем использовать и регулярные выражения. К примеру, давайте уберем из поиска все скрытые файлы и директории.
Поиск файлов, которые были изменены или созданы более 100 дней назад:
В одной статье очень трудно перечислить все возможности этой команды поиска файлов и директорий. Это самое основное и часто используемое.
Помимо find для поиска файлов существует ещё команда locate.
Разница между ними в том, что locate использует собственную базу данных для хранения имен файлов. В то время, как find исследует директории в поисках заданного параметром командной строки имени файла.
Команда locate ищет файлы очень быстро, так как она производит поиск не по файловой системе, а по собственной базе данных.
Поэтому, перед использованием данной команды поиска следует использовать команду, которая обновит базу данных индексов файлов в системе:
Хотя это и не обязательно (система это делает периодически), просто если не выполнить её, то вам может вывести в поиске удаленные файлы или не вывести только что созданные.
Формат команды locate.
Вводится команда locate и имя файла, который хотим найти. И, конечно же, опции, которые разберем на примерах.
Примеры использования команды locate.
Но если мы ищем файл с названием «file», то не найдутся файлы с именами в другом регистре: File, FILE и т.д.
Чтобы поиск сделать регистронезависимым, то нужно использовать следующую опцию -i, то есть:
Если мы хотим ограничить число выводимых файлов в поиске по заданному параметру, мы ставим опцию -n и число:
То есть, данная команда с опцией -n 2 выведет нам только 2 первых найденных файла:
И напоследок, locate лучше выполнять с опцией -e, тогда будут отображены файлы, которые существуют в системе. Даже тогда, когда запись о файле находится в базе данных, все равно будет осуществлена проверка физического нахождения файла в системе:
Полезные команды whereis и which.
У нас установлены программы в системе и чтобы узнать размещение бинарных файлов, исходных кодов и руководств, относящихся к установленной программе, можно выполнить команду whereis. Для примера найдем информацию о пакете google-chrome:
Команда же which отображает полный путь к установленной программе. Также в качестве примера возьмем google-chrome:
- как узнать расположение участка по фото
- как узнать расположение файла python