LinuxInsider.ru
Как искать файлы из командной строки Linux

Как искать файлы из командной строки Linux

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

Кстати, мы уже говорили о том, что появилось интересного в новой версии Ubuntu.

Само собой разумеется, что каждая хорошая графическая оболочка рабочего стола Linux предлагает возможность поиска по вашей файловой системе файлов и папок. Если ваш рабочий стол по умолчанию не работает, потому что это Linux, вы всегда можете установить приложение, чтобы сделать поиск в иерархии каталогов в несколько символов, через «Терминал».

Но как насчет командной строки? Если вам приходится часто работать в командной строке или вы администрируете GUI-less Linux-серверы, куда вы обращаетесь, когда вам нужно найти файл? К счастью, Linux имеет именно то, что вам нужно для поиска файлов, о которых идет речь, и все это уже встроено прямо в систему.

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

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

Как использовать команду

Когда я впервые увидел Linux, я не совсем понял, как работает команда find; Поэтому он никогда не работал так, как я ожидал. Но все оказалось намного проще, чем я думал. Выполните команду find FILENAME (где FILENAME — имя файла), и команда должна была найти файл и отчитаться пользователю. Мало ли я знал, что командование будет больше, чем это. Намного больше.

Если вы выполните команду man find, вы увидите синтаксис команды find:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]

Естественно, если вы не знакомы с тем, как работает «man», вы можете быть смущены или даже ошеломлены этим синтаксисом. Для простоты понимания давайте упростим смысл этой команды. Самый простой синтаксис базовой команды find будет выглядеть так:

find /path option filename

Теперь мы увидим это в работе.

 

Найти по названию

Давайте разберем эту базовую команду, чтобы сделать ее максимально понятной для каждого. Наиболее упрощенная структура команды find должна включать путь к файлу, параметр и имя самого файла. Возможно, вы подумаете: «Если я знаю путь к файлу, я уже знаю, где его найти!». Ну, путь к файлу может быть корнем вашего диска; Поэтому / будет законным путем. Но все намного проще, поскольку ваш путь займет больше времени, для обработки — потому что он должен начинаться с нуля — но, если вы не знаете, где находится файл, вы можете начать с него. Во имя эффективности всегда лучше иметь хотя бы идею, с которой начать поиск.

Следующая часть команды — это опция. Как и в большинстве команд Linux, у вас есть ряд доступных опций. Тем не менее, мы начинаем с самого начала, поэтому давайте сделаем это как можно проще. Поскольку мы пытаемся найти файл по имени, мы будем использовать один из двух вариантов:

Name — с учетом регистра

Iname – без учета регистра

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

find / -name linux.odt

Если, однако, вы должны были изменить команду, используя опцию -iname, команда find найдет ваш файл, независимо от случая. Итак, новая команда выглядит так:

find / -iname linux.odt

Поиск по типу

Что, если вы не заинтересованы в поиске файла по имени, а скорее будете предпочитать находить все файлы определенного типа и форматов? Некоторые из наиболее распространенных файловых дескрипторов:

  • F — обычный файл
  • D — каталог
  • L — символическая ссылка
  • C — символьные устройства
  • B — блочные устройства

Теперь предположим, что вы хотите найти все блокирующие устройства (файл, который ссылается на устройство) в вашей системе. С помощью опции -type мы можем сделать это следующим образом:

find / -type c

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

/dev/hidraw6
/dev/hidraw5
/dev/vboxnetctl
/dev/vboxdrvu
/dev/vboxdrv
/dev/dmmidi2
/dev/midi2
/dev/kvm

Вуаля! Блокировать устройства.

Мы можем использовать тот же параметр, который может помочь нам найти файлы конфигурации. Например, вы хотите найти все «обычные» файлы, которые заканчиваются расширением conf. Тогда эта команда будет выглядеть примерно так:

find / -type f -name "*.conf"

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

find /etc -type f -name “*.conf”

Вышеупомянутая команда отобразит все ваши .conf-файлы из / etc (Рисунок 1).

Вывод результатов в файл

Один очень удобный трюк — вывести результаты поиска в файл. Когда вы знаете, что результат может быть обширным, или если вы захотите прочесть результаты позже, это может оказаться невероятно полезным. Для этого мы будем использовать тот же пример, что и выше, и перенесем результат в файл с именем conf_search. Такая новая команда будет выглядеть примерно так:

find /etc -type f -name “*.conf” > conf_search

Теперь у вас будет файл (conf_search), который содержит все результаты команды find.

 

Поиск файлов по размеру

Теперь мы дойдем до того момента, когда команда find станет невероятно полезной. У меня были случаи, когда десктопы или серверы просто находили свои жесткие диски загадочно заполненными. Для того чтобы быстро освободить место (или помочь найти проблему), вы можете использовать команду find, чтобы найти файлы определенного размера. Скажем, например, вы хотите увеличить размер и найти файлы размером более 1000 МБ. Команда find может быть выдана с помощью опции -size, например:

find / -size +1000MB

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

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

  • C — байт
  • K — Килобайты
  • M — мегабайт
  • G — гигабайт
  • B — 512-байтовые блоки

 

Продолжай учиться

Мы только поверхностно рассказали про команды find, но теперь у вас есть фундаментальное понимание того, как находить файлы на ваших Linux-системах. Убедитесь, что вы поняли команду man find, чтобы получить более глубокое и более полное представление о том, как заставить этот мощный инструмент работать на вас.

Если у вас остались вопросы по теме «Как искать файлы из командной строки Linux» то, пишите нам про них в форму комментариев на нашем сайте. Также обязательно расскажите был ли этот инструмент полезен вам при поиске файлов в Linux. Спасибо большое за визит!

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавьте комментариий