Каждый человек за свою жизнь хочет успеть сделать как можно больше дел. К сожалению, решает это не он. Время - вот чего вечно не хватает каждому из нас. Однако человек придумал огромное количество способов, как ускорить ту или иную операцию, то или иное действие.
Речь пойдет сегодня не о столь глобальном, скорее о мелочном, в каком-то смысле даже необходимом. О том, как осуществляется в Linux поиск файлов. О том, как этот процесс ускорить в несколько раз и как автоматизировать поиск необходимых файлов до предела.
Простой поиск файлов
Сейчас будет рассмотрен случай, когда на Linux поиск файлов необходимо осуществить, зная только некоторые его свойства (имя, формат или размер). Знающие люди уже поняли, что для этого необходимо использовать команду find.
Итак, допустим, у нас на компьютере, где-то в домашней папке, находится картинка, которая называется «Покемон.jpg», но мы не помним, где именно она лежит.
Для того чтобы не открывать поочередно каждую папку, можно воспользоваться командой find, а именно прописать в терминале:
find /home -name "Покемон.jpg" -print |
Сразу же появится путь к этому файлу. Но чтобы было понятней, стоит все объяснить. Участок «/home» обозначает, что поиск файла будет проводиться в домашнем каталоге. «-name» прописывается в случае, если поиск ведется по имени, далее в кавычках указывается полное имя файла. И «-print» в конце дает команду вывода найденных результатов на экран.
Теперь давайте смоделируем ситуацию, когда вы не знаете формат файла. В этом случае команда будет выглядеть так:
find /home -name "Покемон*" -print |
В данном случае в конце имени файла ставится «*». Это означает, что будут находиться все файлы с именем «Покемон», будь то картинка, документ или музыка.
Для того чтобы найти файл определенного формата, например «.jpg», необходимо вписать:
find /home -name "*.jpg" -print |
Думаем, зависимость ясна. И стало ясно, как осуществляется в Linux поиск файлов.
Поиск текста в файлах
Многие люди привыкли, что поиск в тексте определенного слова или словосочетания можно провести, открыв текст в Word или подобной программе и проведя там поиск, но на Linux поиск текста в файлах проводится намного быстрее и в какой-то мере проще.
В первую очередь забываем про команду «find», она в этом случае нам не поможет. Теперь ознакомимся с командой «grep». Именно она поможет отыскать в огромной стене текста слова, которые необходимы.
Допустим, у вас на компьютере есть текстовый документ, в котором есть фраза «Люблю Линукс» и вы знаете, что он расположен в папке: «/home/user». Так вот, чтобы найти в этом документе нужный нам текст, необходимо ввести команду:
grep "Люблю Линукс" /home/user/*.txt |
Синтаксис здесь очень простой. После grep в кавычках указываются искомые слова, а далее нужно проложить путь к файлу, где их необходимо искать, и в конце указать формат файла.
Поиск больших файлов
В Linux поиск больших файлов осуществляется чаще всего в случаях, когда на диске уже мало места, и необходимо срочно удалить тяжеловесные файлы.
Здесь есть два варианта, как быстро найти и удалить такие файлы. Кардинально они ничем не отличаются, и только вам решать, каким пользоваться.
Первая команда позволит найти нам файлы размером больше указанного:
find / -size +1G -print |
В данном случае мы видим, что указан размер «+1G», это означает, что находиться будут файлы больше 1 Гб, если вместо плюса стоял бы минус, это обозначало бы, что искались файлы меньше указанного размера. Но этот метод плох по одной причине: если таких файлов окажется очень много, вы очень долго будете их перебирать, поэтому есть еще второй вариант.
Вводите в командную строку:
find / -mount -type f -ls 2> /dev/null | sort -rnk7 | head -10 | awk `{printf "%10d MBt%sn",($7/1024)/1024,$NF}` |
После этого вам на экран покажутся десять файлов, начиная с самого большого. Это поможет сэкономить время на поиск подходящего варианта для удаления.
Перед выполнением этих команд рекомендуется прописать команду «sudo su», чтобы получить права суперпользователя, так как поиск файлов будет затрагивать и root.
Поиск копий файлов
Часто так бывает, что при долгом использовании компьютера на нем появляются дубликаты уже созданных файлов. Возникают они по многим причинам, одной из которой является неосторожность. Конечно, ничем серьезным это не грозит, но вот место все же занимает, поэтому, чтобы быстро все их удалить, нужно выполнить на Linux поиск дубликатов файлов.
Как и в прошлый раз, сделать это можно двумя способами, но остановимся на одном, который проще.
Можно скачать специальную утилиту прописав в терминале:
sudo apt-get install fslint |
Ее отличие от других вариантов заключается в том, что у нее есть графический интерфейс, что облегчит работу с ней новичкам.
Запустив ее, можете сразу же нажимать поиск, по умолчанию он будет проводиться в домашней директории. При желании можно выбрать любой каталог.
Альтернативные варианты поиска
Конечно же, запомнить все вышеперечисленные команды не каждому под силу, да и, честно говоря, без толку, а записывать на бумажку тоже не вариант. Именно поэтому необходимо рассказать об альтернативе, которая в сто раз проще, хотя и затратна по времени.
Первым вариантом, если вам необходимо найти файл по имени, будет поиск из проводника. Просто выберите папку, в которой предположительно находится необходимый файл, и в поисковой строке, которая находится вверху справа, впишите его название. Туда можно также вписать и формат файла.
Второй вариант подходит в случае, если вам необходимо осуществить поиск строки в файлах Linux. Скачайте LibreOffice и скопируйте туда свой текст. После нажмите сочетание клавиш Ctrl+F и в проявившейся строке введите необходимое сочетание слов.
Вот, в принципе, и все. Так можно быстро найти искомое, не запоминая команды.
Вывод
Как видно, на Linux поиск файлов можно осуществить различными способами. Некоторые из них лучше, некоторые хуже, все зависит от ситуации. В любом случае, прочитав данную статью, вы теперь можете это сделать. Пользуясь командной строкой некоторое время, вы запомните большинство команд и потом сможете ускорить процесс в несколько раз.