Найти файл в системе Linux может быть сложно, если вы не знаете, как это сделать. Лучший способ найти файлы - использовать несколько разных команд терминала. Освоение этих команд может дать вам полный контроль над вашими файлами, и они намного мощнее, чем простые функции поиска в других операционных системах.
Шаги
Метод 1 из 3: использование слова "найти"
Шаг 1. Установите
найти функциональность.
Команда locate обычно работает намного быстрее, чем команда find, потому что она работает с базой данных вашей файловой структуры. Не все дистрибутивы Linux поставляются с установленной функцией поиска, поэтому введите следующие команды, чтобы попытаться установить ее:
- Введите sudo apt-get update и нажмите ↵ Enter.
- Вы можете установить его в Debian и Ubuntu следующим образом: Введите sudo apt-get install mlocate и нажмите ↵ Enter. Если locate уже установлен, вы увидите сообщение, что mlocate уже является последней версией.
- В Arch Linux используйте менеджер пакетов pacman: pacman -S mlocate
- Для Gentoo используйте emerge: emerge mlocate
Шаг 2. Обновите свой
найти база данных.
Команда locate не сможет ничего найти, пока ее база данных не будет построена и обновлена. Это происходит автоматически ежедневно, но вы также можете обновить его вручную. Вам нужно будет сделать это, если вы хотите немедленно начать использовать locate.
Введите sudo updatedb и нажмите ↵ Enter
Шаг 3. Используйте
найти выполнять простой поиск.
Команда locate выполняется быстро, но у нее не так много параметров, как у команды find. Вы можете выполнить базовый поиск файлов почти так же, как и команду find.
найдите -i "*.jpg"
- Эта команда будет искать файлы с расширением-j.webp" />
- Как и команда find, -i игнорирует регистр вашего запроса.
Шаг 4. Ограничьте результаты поиска
Если ваши поисковые запросы возвращают слишком много результатов, чтобы их можно было обработать, вы можете сократить их, используя параметр -n, за которым следует количество результатов, которые вы хотите отобразить.
найти -n 20 -i "*.jpg"
- Будут отображены только первые 20 результатов, соответствующих запросу.
- Вы также можете использовать | pipe, чтобы отправить результаты в less для удобной прокрутки.
Метод 2 из 3. Использование "find"
Шаг 1. Найдите файл по его имени
Это самый простой поиск, который вы можете выполнить с помощью команды 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
Метод 3 из 3: поиск текста в файлах
Шаг 1. Используйте
grep команда для поиска строк текста в файлах.
Если вы ищете файл, содержащий определенную фразу или строку символов, вы можете использовать команду grep. Основная команда grep имеет следующий формат:
grep -r -i "поисковый запрос" / путь / к / каталогу /
- Параметр -r устанавливает «рекурсивный» поиск, поэтому он будет искать в текущем каталоге и во всех подкаталогах любой файл, содержащий строку запроса.
- -I указывает, что запрос не чувствителен к регистру. Если вы хотите, чтобы поиск учитывал регистр, опустите оператор -i.
Шаг 2. Вырежьте лишний текст
Когда вы выполните поиск с помощью grep, как указано выше, вы увидите имя файла вместе с текстом с выделенным соответствующим запросом. Вы можете скрыть соответствующий текст и просто отобразить имена файлов и пути, включив следующее:
grep -r -i "поисковый запрос" / путь / к / каталогу / | вырезать -d: -f1
Шаг 3. Скройте сообщения об ошибках
Команда grep вернет ошибку, когда попытается получить доступ к папкам без правильных разрешений или запустит пустые папки. Вы можете отправлять сообщения об ошибках в / dev / null, чтобы скрыть их от вывода.
grep -r -i "поисковый запрос" / путь / к / каталогу / 2> / dev / null