- Поиск в Linux с помощью команды find
- Общий синтаксис
- Описание опций
- Примеры использования find
- Поиск файла по имени
- Поиск по дате
- По типу
- Поиск по правам доступа
- Поиск файла по содержимому
- С сортировкой по дате модификации
- Лимит на количество выводимых результатов
- Поиск с действием (exec)
- Чистка по расписанию
- How do I search files and folders on Linux Mint 18.1 Cinnamon?
- 4 Answers 4
- From your desktop, open a shell or terminal window. At the prompt, use the ‘man’ command to review the details about ‘find’.
- prompt$ find /home/myName -type f -iname somefile
- Как найти файлы и каталоги в Linux Mint 20
- Как найти файл в Linux с помощью файлового менеджера
- Как найти файл в Linux с помощью окна терминала
- Найдите
- Find
- Ищете конкретный файл?
- Ищете файлы определенного формата?
- Ищете пустые файлы?
- Используйте подстановочные знаки для поиска файлов
- Whereis
- Grep
Поиск в Linux с помощью команды find
Обновлено: 01.02.2022 Опубликовано: 25.07.2016
Утилита find представляет универсальный и функциональный способ для поиска в Linux. Данная статья является шпаргалкой с описанием и примерами ее использования.
Общий синтаксис
— путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.». — набор правил, по которым выполнять поиск. * по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.
Описание опций
Также доступны логические операторы:
Оператор | Описание |
---|---|
-a | Логическое И. Объединяем несколько критериев поиска. |
-o | Логическое ИЛИ. Позволяем команде find выполнить поиск на основе одного из критериев поиска. |
-not или ! | Логическое НЕ. Инвертирует критерий поиска. |
Полный набор актуальных опций можно получить командой man find.
Примеры использования find
Поиск файла по имени
* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня /.
2. Поиск файла по части имени:
* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp
а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:
find . -name «sess_*» -a -name «*cd»
б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:
find . -name «sess_*» -o -name «*cd»
в) Более компактный вид имеют регулярные выражения, например:
* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).
4. Найти все файлы, кроме .log:
* в данном примере мы воспользовались логическим оператором !.
Поиск по дате
1. Поиск файлов, которые менялись определенное количество дней назад:
* данная команда найдет файлы, которые менялись более 60 дней назад.
find . -mmin -20 -mmin +10 -type f
* найти все файлы, которые менялись более 10 минут, но не более 20-и.
2. Поиск файлов с помощью newer. Данная опция доступна с версии 4.3.3 (посмотреть можно командой find —version).
find . -type f -newermt «2019-11-02 00:00»
* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.
find . -type f -newermt 2019-10-31 ! -newermt 2019-11-02
* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).
find . -type f -newerat 2019-10-08
* все файлы, к которым обращались с 08.10.2019.
find . -type f -newerat 2019-10-01 ! -newerat 2019-11-01
* все файлы, к которым обращались в октябре.
find . -type f -newerct 2019-09-07
* все файлы, созданные с 07 сентября 2019 года.
find . -type f -newerct 2019-09-07 ! -newerct «2019-09-09 07:50:00»
* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50
По типу
Искать в текущей директории и всех ее подпапках только файлы:
* f — искать только файлы.
Поиск по правам доступа
1. Ищем все справами на чтение и запись:
2. Находим файлы, доступ к которым имеет только владелец:
Поиск файла по содержимому
find / -type f -exec grep -i -H «content» <> \;
* в данном примере выполнен рекурсивный поиск всех файлов в директории / и выведен список тех, в которых содержится строка content.
С сортировкой по дате модификации
find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r
* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.
Лимит на количество выводимых результатов
Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:
find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r | head -n 1
Поиск с действием (exec)
1. Найти только файлы, которые начинаются на sess_ и удалить их:
find . -name «sess_*» -type f -print -exec rm <> \;
* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.
2. Переименовать найденные файлы:
find . -name «sess_*» -type f -exec mv <> new_name \;
find . -name «sess_*» -type f | xargs -I ‘<>‘ mv <> new_name
3. Переместить найденные файлы:
find . -name «sess_*» -type f -exec mv <> /new/path/ \;
* в данном примере мы переместим все найденные файлы в каталог /new/path/.
4. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:
find /home/user/* -type d -exec chmod 2700 <> \;
* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.
6. Передать найденные файлы конвееру (pipe):
find /etc -name ‘*.conf’ -follow -type f -exec cat <> \; | grep ‘test’
* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.
7. Произвести замену в файлах с помощью команды sed:
find /opt/project -type f -exec sed -i -e «s/test/production/g» <> \;
* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.
Чистка по расписанию
Команду find удобно использовать для автоматического удаления устаревших файлов.
Открываем на редактирование задания cron:
0 0 * * * /bin/find /tmp -mtime +14 -exec rm <> \;
* в данном примере мы удаляем все файлы и папки из каталога /tmp, которые старше 14 дней. Задание запускается каждый день в 00:00.
* полный путь к исполняемому файлу find смотрим командой which find — в разных UNIX системах он может располагаться в разных местах.
How do I search files and folders on Linux Mint 18.1 Cinnamon?
I switched over from Windows 7 Ultimate to Linux Mint 18.1 Cinnamon a few days ago, and I wanted to search files and folders in my Home directory using the menu, but nothing happened. It seems like cinnamon is only searching for applications. Then I found out you could use the File Manager too search files and folders. But I wanted to use the menu instead. I don’t like opening windows to search for something. Because my previous OS could do just that. And I DON’T what a third-party anything.
4 Answers 4
From your desktop, open a shell or terminal window. At the prompt, use the ‘man’ command to review the details about ‘find’.
prompt$ man find prompt$ find
prompt$ find /home/myName -type f -iname somefile
Cinnamon doesn’t have this feature, unfortunately. It was one of the nice things about the Ubuntu Unity interface. The synapse launcher is what I use, but if you don’t want to install a third party app, and are content with only searching recently opened or downloaded files, enable this:
Like every Linux OS I’ve ever used, Mint Menu has a “Recent Files” option. This option remembers not only files you’ve created or used but also everything you’ve downloaded. A mistake I frequently make is addressing a download to the wrong folder. Nemo has a decent search function but it can take time. It’s far easier to find a file’s location in the Mint Menu. Click on “Recent Files”, hover over the misplaced file and at the bottom of the menu it’s exact location will appear.
If the “Recent Files” option doesn’t appear in your menu, that’s because there is an option to turn it off in order to protect your computing activities from prying eyes. If you can’t find it on your menu, go to “System Settings” and click “Privacy”. You’ll see this screen:
Turn on Privacy in Linux Mint
Simply toggle it to “on” and adjust further as suits your needs. (But remember, if you select “Never forget old files” your menu will take longer and longer to open as time passes and entries multiply.)
Как найти файлы и каталоги в Linux Mint 20
Вы так усердно пытались найти файл в своей новой системе Linux, но после нескольких часов бессвязной работы в терминале он все еще отсутствует. Теперь вы просто сидите и удивляетесь, что такое сумасшедший Linux. Поверьте мне, я не могу согласиться с вами больше! Linux временами кажется головоломкой, в которой новые пользователи легко и часто теряются. Но не волнуйтесь, мы здесь, чтобы помочь вам. Вместе мы найдем этот ваш озорной маленький файл, который так хорошо прячется.
Мы использовали Linux Mint 20.2 Cinnamon , чтобы показать , как можно найти файлы и каталоги с помощью различных методов и команд.
Как найти файл в Linux с помощью файлового менеджера
Файловый менеджер среды рабочего стола Cinnamon известен как Nemo.
Разработчик проекта «Немо» Гвендаль Ле Биан назвал его в честь известного персонажа Жюля Верна Капитана Немо, который является капитаном «Наутилуса». Как говорится в разделе о Nemo, он позволяет вам организовывать файлы и каталоги как на вашем локальном компьютере, так и в Интернете.
Этот интерфейс почти такой же, как файловая система Windows. Вы можете погрузиться в любую из папок, чтобы получить доступ к своим файлам.
Здесь у нас есть файловая система Linux, которая на первый взгляд выглядит довольно пугающе, но не стоит беспокоиться, так как вам не придется иметь дело с большей ее частью. Это просто папки с файлами, которые в случае необходимости можно легко найти.
Как найти файл в Linux с помощью окна терминала
Я знаю, что вы не поклонник командной строки Linux. Ну, никто. И мне жаль сообщать вам, что вы никогда не сможете избежать этого маленького черного окошка, пока собираетесь работать с Linux, как бы это вас ни пугало. Но не нужно беспокоиться. Сначала это может показаться сложным, но после изучения нескольких команд вы сможете легко исследовать всю файловую систему.
Давайте начнем исследовать!
Найдите
Самый быстрый и простой способ поиска файлов и каталогов по их именам — с помощью команды locate.
Вот пример, в котором мы пытались найти файл с именем resolv.conf в определенном каталоге. Как видите, команда возвращает все файлы, имена которых содержат resolv.conf в этом каталоге.
Locate resolv.conf
Чтобы подробнее изучить эту команду и просмотреть все параметры, доступные для locate, введите man locate в своем терминале.
Find
Find — очень важный инструмент в Linux. Он позволяет искать файлы и каталоги и выполнять над ними операции. Он также позволяет выполнять поиск по файлу, папке, имени, дате создания, дате изменения, владельцу и разрешениям.
Ищете конкретный файл?
Если вы хотите найти определенный файл, следующая команда будет искать его в текущем и подкаталогах.
В примере мы искали файл с именем resolv.conf.
find . -name resolv.conf
Команда возвращает файл в текущем каталоге.
Ищете файлы определенного формата?
Если вы хотите увидеть все файлы определенного формата в определенном каталоге, будет использоваться следующая команда.
find /home -name *.jpg
В этом примере команда возвращает все файлы в формате .PNG в указанном каталоге.
find /home/azifa/Pictures -name *.png
Ищете пустые файлы?
Следующая команда возвращает все пустые файлы в указанном каталоге.
find . -type f -empty
В примере команда возвращает пустой файл, находящийся в указанном каталоге.
find . -type f -empty
Используйте подстановочные знаки для поиска файлов
find . -name '*re'
В этом примере команда возвращает все файлы с именами, заканчивающимися на re.
Find . Name ‘*re’
Whereis
Команда whereis не является командой повседневного использования. Он используется для поиска двоичных файлов, исходных файлов и файлов страниц руководства для команды. Он в основном используется для поиска исполняемых файлов приложения, его справочных страниц и файлов конфигурации.
В этом примере мы использовали приложение flameshot.
whereis flameshot
Grep
Grep — это утилита командной строки Linux, которая используется для поиска строки символов в определенной строке. Когда совпадение найдено, он печатает строку в окне терминала.
В этом примере использовалась строка you и имя файла file.txt.
Grep you file.txt
Как видно, команда Whereis возвращает все строки, в которых есть слово you.
В этом документе мы рассмотрели четыре команды (find, locate, whereis, grep) с помощью различных примеров, которые помогут вам легко находить файлы и каталоги в вашей системе Linux Mint.