3 способа найти файл в Linux

Оглавление:

3 способа найти файл в Linux
3 способа найти файл в Linux

Видео: 3 способа найти файл в Linux

Видео: 3 способа найти файл в Linux
Видео: Шифрованная файловая система (Encrypting File System) — защита личных файлов 2024, Май
Anonim

Найти файл в системе Linux может быть сложно, если вы не знаете, как это сделать. Лучший способ найти файлы - использовать несколько разных команд терминала. Освоение этих команд может дать вам полный контроль над вашими файлами, и они намного мощнее, чем простые функции поиска в других операционных системах.

Шаги

Метод 1 из 3: использование слова "найти"

690519 10 1
690519 10 1

Шаг 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
690519 11 1
690519 11 1

Шаг 2. Обновите свой

найти база данных.

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

Введите sudo updatedb и нажмите ↵ Enter

690519 12 1
690519 12 1

Шаг 3. Используйте

найти выполнять простой поиск.

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

найдите -i "*.jpg"

  • Эта команда будет искать файлы с расширением-j.webp" />
  • Как и команда find, -i игнорирует регистр вашего запроса.
690519 13 1
690519 13 1

Шаг 4. Ограничьте результаты поиска

Если ваши поисковые запросы возвращают слишком много результатов, чтобы их можно было обработать, вы можете сократить их, используя параметр -n, за которым следует количество результатов, которые вы хотите отобразить.

найти -n 20 -i "*.jpg"

  • Будут отображены только первые 20 результатов, соответствующих запросу.
  • Вы также можете использовать | pipe, чтобы отправить результаты в less для удобной прокрутки.

Метод 2 из 3. Использование "find"

690519 1 1
690519 1 1

Шаг 1. Найдите файл по его имени

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

найти -iname "имя файла"

Использование -iname вместо -name игнорирует регистр вашего запроса. В команде -name учитывается регистр

690519 2 1
690519 2 1

Шаг 2. Настройте запуск поиска в корневом каталоге

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

find / -iname "имя файла"

  • Вы можете начать поиск в определенном каталоге, заменив / на путь к каталогу, например / home / pat.
  • Вы можете использовать. вместо /, чтобы поиск выполнялся только в текущем каталоге и подкаталогах.
690519 3 1
690519 3 1

Шаг 3. Используйте подстановочный знак

* для поиска всего, что соответствует части запроса.

Подстановочный знак * может быть полезен для поиска чего-либо, если вы не знаете полное имя или хотите найти все с определенным расширением.

найти / home / pat -iname "*.conf"

  • Это вернет все файлы.conf в пользовательской папке Pat (и подкаталогах).
  • Вы также можете использовать его, чтобы найти все, что соответствует части имени файла. Например, если у вас есть много документов, связанных с wikiHow, вы можете найти их все, набрав «* wiki *».
690519 4 1
690519 4 1

Шаг 4. Упростите управление результатами поиска

Если вы получаете много результатов поиска, их может быть сложно проанализировать. Используйте | символ и отправьте результаты поиска в программу фильтрации "меньше". Это может значительно упростить прокрутку и фильтрацию результатов.

найти / home / pat -iname "*.conf" | меньше

690519 5 1
690519 5 1

Шаг 5. Найдите конкретные типы результатов

Вы можете использовать модификаторы, чтобы возвращать только определенные типы результатов. Вы можете искать обычные файлы (f), каталоги (d), символические ссылки (l), символьные устройства (c) и блочные устройства (b), используя правый модификатор.

find / -type f -iname "имя файла"

690519 6 1
690519 6 1

Шаг 6. Отфильтруйте результаты поиска по размеру

Если у вас много файлов с похожими именами, но вы знаете размер, который вам нужен, вы можете отфильтровать наши результаты по размеру.

find / -size + 50M -iname "имя файла"

  • Это вернет результаты размером 50 мегабайт или больше. Вы можете использовать + или - для поиска большего или меньшего размера. Отсутствие + или - приведет к поиску файлов точно указанного размера.
  • Вы можете фильтровать по байтам (c), килобайтам (k), мегабайтам (M), гигабайтам (G) или 512-байтовым блокам (b). Обратите внимание, что флаг размера чувствителен к регистру.
690519 7 1
690519 7 1

Шаг 7. Используйте логические операторы для объединения поисковых фильтров

Вы можете использовать операторы -and, -or и -not для объединения различных типов поиска в один.

find / travelphotos -type f -size + 200k -not -iname "* 2015 *"

Команда найдет в каталоге travelphotos файлы, размер которых превышает 200 килобайт, но в имени файла нет «2015»

690519 8 1
690519 8 1

Шаг 8. Найдите файлы по владельцу или разрешениям

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

find / -user pat -iname "filename" find / -group users -iname "filename" find / -perm 777 -iname "filename"

В приведенных выше примерах выполняется поиск указанных пользователей, групп или разрешений для запроса. Вы также можете опустить запрос имени файла, чтобы вернуть все файлы, соответствующие этому типу. Например, find / -perm 777 вернет все файлы с разрешениями 777 (без ограничений)

690519 9 1
690519 9 1

Шаг 9. Комбинируйте команды для выполнения действий при обнаружении файлов

Команду find можно комбинировать с другими командами, чтобы выполнять их для файлов, возвращаемых запросом. Разделите команду find и вторую команду флагом -exec, а затем завершите строку символом {};

найти. -type f -perm 777 -exec chmod 755 {};

Это будет искать в текущем каталоге (и во всех подкаталогах) файлы с разрешениями 777. Затем он будет использовать команду chmod, чтобы изменить права доступа на 755

Метод 3 из 3: поиск текста в файлах

690519 14 1
690519 14 1

Шаг 1. Используйте

grep команда для поиска строк текста в файлах.

Если вы ищете файл, содержащий определенную фразу или строку символов, вы можете использовать команду grep. Основная команда grep имеет следующий формат:

grep -r -i "поисковый запрос" / путь / к / каталогу /

  • Параметр -r устанавливает «рекурсивный» поиск, поэтому он будет искать в текущем каталоге и во всех подкаталогах любой файл, содержащий строку запроса.
  • -I указывает, что запрос не чувствителен к регистру. Если вы хотите, чтобы поиск учитывал регистр, опустите оператор -i.
690519 15 1
690519 15 1

Шаг 2. Вырежьте лишний текст

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

grep -r -i "поисковый запрос" / путь / к / каталогу / | вырезать -d: -f1

690519 16 1
690519 16 1

Шаг 3. Скройте сообщения об ошибках

Команда grep вернет ошибку, когда попытается получить доступ к папкам без правильных разрешений или запустит пустые папки. Вы можете отправлять сообщения об ошибках в / dev / null, чтобы скрыть их от вывода.

grep -r -i "поисковый запрос" / путь / к / каталогу / 2> / dev / null

Рекомендуемые: