Поиск файлов в системе Linux может быть трудным, если вы не знаете, как это сделать. Лучший способ найти файлы в Linux - использовать несколько команд терминала. Освоение некоторых из этих команд может дать вам полный контроль над файлами, и они более полезны, чем простые функции поиска в других операционных системах.
Шаг
Метод 1 из 3. Использование "find"
Шаг 1. Найдите файлы по имени
Этот тип поиска является самым простым, и вы можете сделать это с помощью команды find. Приведенная ниже команда выполнит поиск по слову, введенному в каталоге, в котором вы находитесь, а также по подкаталогам в нем.
find -iname "имя файла"
Если вы используете -iname вместо -name, разница между ключевыми словами в верхнем и нижнем регистре не будет иметь никакого эффекта. Команда -name считает прописные и строчные буквы разными символами
Шаг 2. Настройте запуск поиска в корневом каталоге
Если вы хотите выполнить поиск по всей системе, вы можете добавить к ключевому слову модификатор /. Модификатор указывает команде find выполнять тщательный поиск, начиная с корневого каталога.
find / -iname "имя файла"
- Вы можете начать поиск в определенном каталоге, заменив модификатор / на путь к каталогу, например / home / pat.
- Вы можете использовать. кроме /, так что поиск выполняется только в каталоге, в котором вы находитесь, а также в подкаталогах внутри него.
Шаг 3. Используйте подстановочные знаки
* для поиска всего, что частично соответствует вашим ключевым словам.
Подстановочный знак * можно использовать для поиска файлов, полные имена которых вы не знаете, или если вы хотите найти все файлы с определенным расширением.
найти / home / pat -iname "*.conf"
- Приведенная выше команда вернет все файлы.conf в пользовательский каталог с именем Pat (а также его подкаталоги).
- Вы также можете использовать его, чтобы найти все, чье имя частично совпадает с этим ключевым словом. Например, если у вас много документов, связанных с wikiHow, вы можете найти их, набрав «* wiki *».
Шаг 4. Упростите управление результатами поиска
Если результатов поиска будет слишком много, вам будет сложно найти нужный файл. Используйте символ | и отправить результаты поиска обратно в программу фильтрации "меньше". Таким образом, вы можете легче прокручивать и фильтровать результаты поиска.
найти / home / pat -iname "*.conf" | меньше
Шаг 5. Найдите результаты поиска определенного типа
Вы можете использовать модификаторы, чтобы возвращать только определенные типы результатов. Вы можете искать обычные файлы (f), каталоги (d), символические ссылки (l), символьные устройства (c) и блочные устройства (b), используя соответствующие модификаторы.
find / -type f -iname "имя файла"
Шаг 6. Отфильтруйте результаты поиска по размеру
Если у вас много файлов с похожими именами, но вы знаете размер файла, который вам нужен, вы можете отфильтровать поиск по размеру.
find / -size + 50M -iname "имя файла"
- Вышеупомянутая команда вернет результаты поиска размером 50 мегабайт или более. Вы можете использовать + или - для поиска файлов большего или меньшего размера. Отсутствие знака + или - приводит к тому, что поиск возвращает только результаты с действительно "правильным" размером.
- Вы можете фильтровать поиск по блокам в байтах (c), килобайтах (k), мегабайтах (M), гигабайтах (G) или 512 байтах (b). Имейте в виду, что маркировка различает прописные и строчные буквы.
Шаг 7. Используйте логические операторы для объединения поисковых фильтров
Вы можете использовать операторы -and, -or и -not для объединения различных поисков.
find / travelphotos -type f -size + 200k -not -iname "* 2015 *"
Вышеупомянутая команда будет искать файлы в каталоге travelphotos размером более 200 килобайт, но без слова «2015» в своем имени
Шаг 8. Выполните поиск файла по имени или разрешению владельца
Если вы пытаетесь найти определенный файл, принадлежащий определенному пользователю, или ищете файл с определенными разрешениями, вы можете сузить поиск.
find / -user pat -iname "filename" find / -group users -iname "filename" find / -perm 777 -iname "filename"
В приведенных выше примерах выполняется поиск определенного пользователя, группы или разрешения по ключевому слову. Вы также можете опустить имя файла, чтобы получить все файлы, соответствующие этому типу. Например, find / -perm 777 вернет все файлы с разрешениями 777 (без ограничений)
Шаг 9. Объедините команды для выполнения действия, когда файл будет найден
Команду find можно комбинировать с другими командами, чтобы с помощью этой команды можно было обрабатывать файлы, возвращаемые по ключевому слову. Разделите команду find и вторую команду флагом -exec, затем завершите строку символом {};
найти. -type f -perm 777 -exec chmod 755 {};
Приведенная выше команда будет искать в каталоге, в котором вы находитесь (и во всех подкаталогах в нем) файлы с разрешениями 777. Затем команда chmod изменит права доступа на 755
Метод 2 из 3: использование слова "найти"
Шаг 1. Устанавливаем
найти функциональность. Команда locate обычно выполняется быстрее, чем команда find, из-за использования базы данных вашей файловой системы. Не все типы Linux оснащены функцией поиска, поэтому введите следующую команду, чтобы установить ее:
- Введите sudo apt-get update и нажмите Enter.
- Вы можете установить его в Debian и ubuntu следующим образом: введите sudo apt-get install mlocate и нажмите Enter. Если функция определения местоположения была установлена ранее, вы увидите сообщение, что mlocate уже является последней версией.
- В Arch Linux используйте менеджер пакетов pacman: pacman -Syu mlocate
- Для Gentoo используйте emerge: emerge mlocate
Шаг 2. Обновить
найти база данных Ты. Команда locate не сможет ничего найти, пока она не будет создана и обновлена. Обычно этот процесс выполняется автоматически каждый день, но вы также можете обновить его вручную. Вам нужно сделать это, если вы хотите как можно скорее использовать функцию определения местоположения.
Введите sudo updatedb и нажмите Enter
Шаг 3. Используйте
найти выполнить простой поиск.
Функция поиска работает быстро, но не имеет такого количества параметров, как команда поиска. Вы можете выполнять базовый поиск файлов аналогично команде find.
найдите -i "*.jpg"
- Приведенная выше команда будет искать файлы с расширением-j.webp" />
- Как и команда find, модификатор -i также делает заглавные и строчные буквы в ключевых словах одинаковыми.
Шаг 4. Ограничьте результаты поиска
Если ваш поиск возвращает так много результатов, что вам сложно их использовать, вы можете уменьшить эти результаты с помощью модификатора -n, за которым следует количество результатов, которые вы хотите вернуть.
найти -n 20 -i "*.jpg"
- Будет отображено только 20 результатов поиска.
- Вы также можете использовать | для отправки результатов поиска в программу с меньшим количеством фильтров для облегчения прокрутки результатов.
Метод 3 из 3: поиск текста в файлах
Шаг 1. Используйте команду
grep чтобы найти текстовую строку в файле.
Если вы ищете файл, содержащий определенную фразу или строку символов, вы можете использовать команду grep. Основная команда grep имеет следующий формат:
grep -r -i "поисковый запрос" / путь / к / каталогу /
- Модификатор -r делает поиск «рекурсивным», поэтому поиск будет выполняться внутри каталога и всех подкаталогов в нем, чтобы найти файлы, содержащие текст с ключевым словом search.
- Модификатор -i указывает, что ключевое слово поиска не различает прописные и строчные буквы. Если вы хотите, чтобы поиск различал прописные и строчные буквы, игнорируйте модификатор -i.
Шаг 2. Удалите лишний текст
Выполняя поиск с помощью grep, как указано выше, вы увидите имя файла с выделенными соответствующими буквами. Вы можете скрыть соответствующий текст и показать только имя каталога файла и путь, добавив:
grep -r -i "ключевое слово поиска" / путь / к / каталогу / | вырезать -d: -f1
Шаг 3. Скройте сообщение об ошибке
Команда grep вернет ошибку при попытке доступа к каталогу без соответствующих разрешений или при входе в пустой каталог. Вы можете отправлять сообщения об ошибках в / dev / null, чтобы они не появлялись.
grep -r -i "ключевое слово поиска" / путь / к / каталогу / 2> / dev / null