Linux как найти файлы приложения

Время на прочтение
5 мин

Количество просмотров 125K

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

Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:

  • Дате добавления.
  • Содержимому.
  • Регулярным выражениям.

Данная команда будет очень полезна системным администраторам для:

  • Управления дисковым пространством.
  • Бэкапа.
  • Различных операций с файлами.

Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.

Синтаксис команды find:

$ find directory-to-search criteria action

Где:

  • directory-to-search (каталог поиска) – это отправной каталог, с которой find начинает поиск файлов по всем подкаталогам, которые находятся внутри. Если не указать путь, тогда поиск начнется в текущем каталоге;
  • criteria (критерий) – критерий, по которым нужно искать файлы;
  • action (действие) – что делать с каждым найденным файлом, соответствующим критериям.

Поиск по имени

Следующая команда ищет файл s.txt в текущем каталоге:

$ find . -name "s.txt"
./s.txt

Где:

  • . (точка) – файл относится к нынешнему каталогу
  • -name – критерии по которым осуществляется поиск. В данном случае поиск по названию файла.

В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.

$ find . -iname "s.txt"
./s.txt
./S.txt

Для поиска всех изображений c расширением .png нужно использовать шаблон подстановки *.png:

$ find . -name "*.png"
./babutafb.png
./babutafacebook.png
./Moodle2.png
./moodle.png
./moodle/moodle1.png
./genxfacebook.png

Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:

$ find /home -name "*.png"
find: `/home/babuta/.ssh': Permission denied
/home/vagrant/Moodle2.png
/home/vagrant/moodle.png
/home/tisha/hello.png
find: `/home/tisha/testfiles': Permission denied
find: `/home/tisha/data': Permission denied
/home/tisha/water.png
find: `/home/tisha/.cache': Permission denied

Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.

find /home -name "*.jpg" 2>/dev/null
/home/vagrant/Moodle2.jpg
/home/vagrant/moodle.jpg
/home/tisha/hello.jpg
/home/tisha/water.jpg

Поиск по типу файла

Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:

  • f – простые файлы;
  • d – каталоги;
  • l – символические ссылки;
  • b – блочные устройства (dev);
  • c – символьные устройства (dev);
  • p – именованные каналы;
  • s – сокеты;

Например, указав критерий -type d будут перечислены только каталоги:

$ find . -type d
.
./.ssh
./.cache
./moodle

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

Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.

  • «+» — Поиск файлов больше заданного размера
  • «-» — Поиск файлов меньше заданного размера
  • Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.

В данном случае поиск выведет все файлы более 1 Гб (+1G).

$ find . -size +1G
./Microsoft_Office_16.29.19090802_Installer.pkg
./android-studio-ide-183.5692245-mac.dmg

Единицы измерения файлов:

  • c — Байт
  • k — Кбайт
  • M — Мбайт
  • G — Гбайт

Поиск пустых файлов и каталогов

Критерий -empty позволяет найти пустые файлы и каталоги.

$ find . -empty
./.cloud-locale-test.skip
./datafiles
./b.txt
...
./.cache/motd.legal-displayed

Поиск времени изменения

Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:

$ find . -cmin -60
.
./a.txt
./datafiles

Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).

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

$ find . -cmin +60

Поиск по времени доступа

Критерий -atime позволяет искать файлы по времени последнего доступа.

$ find . -atime +180

Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).

Поиск по имени пользователя

Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:

$ find /home -user tisha 2>/dev/null

Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.

Поиск по набору разрешений

Критерий -perm – ищет файлы по определенному набору разрешений.

$ find /home -perm 777

Поиск файлов с разрешениями 777.

Операторы

Для объединения нескольких критериев в одну команду поиска можно применять операторы:

  • -and
  • -or
  • -not

Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:

$ find /home  -user tisha  -and  -size +1G  2>/dev/null

Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.

$ find /home ( -user pokeristo -or -user tisha )  -and  -size +1G  2>/dev/null

Перед скобками нужно поставить обратный слеш «».

Действия

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

  • -delete — Удаляет соответствующие результатам поиска файлы
  • -ls — Вывод более подробных результатов поиска с:
    • Размерами файлов.
    • Количеством inode.
  • -print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам.
  • -exec Выполняет указанную команду в каждой строке результатов поиска.

-delete

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

$ find . -empty -delete

Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.

-exec:

Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.

-exec command {} ;

Где:

  • command – это команда, которую вы желаете выполнить для результатов поиска. Например:
    • rm
    • mv
    • cp
  • {} – является результатами поиска.
  • ; — Команда заканчивается точкой с запятой после обратного слеша.

С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:

$ find . -empty -exec rm {} ;

Другой пример использования действия -exec:

$ find . -name "*.jpg" -exec cp {} /backups/fotos ;

Таким образом можно скопировать все .jpg изображения в каталог backups/fotos

Заключение

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

  • Файлов по имени.
  • Дате последнего доступа.
  • Дате последнего изменения.
  • Имени пользователя (владельца файла).
  • Имени группы.
  • Размеру.
  • Разрешению.
  • Другим критериям.

С полученными результатами можно сразу выполнять различные действия, такие как:

  • Удаление.
  • Копирование.
  • Перемещение в другой каталог.

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

image

Обновлено Обновлено: 01.02.2022
Опубликовано Опубликовано: 25.07.2016

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

Синтаксис
Примеры
    Поиск по имени
    По дате
    По типу файла
    По правам
    По содержимому
    С сортировкой по дате изменения
    Лимиты
    Действия над найденными объектами
Запуск по расписанию в CRON

Общий синтаксис

find <где искать> <опции>

<где искать> — путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».

<опции> — набор правил, по которым выполнять поиск.

* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.

Описание опций

Опция Описание
-name Поиск по имени.
-iname Регистронезависимый поиск по имени.
-type

Тип объекта поиска. Возможные варианты:

  • f — файл;
  • d — каталог;
  • l — ссылка;
  • p — pipe;
  • s — сокет.
-size Размер объекта. Задается в блоках по 512 байт или просто в байтах (с символом «c»).
-mtime Время изменения файла. Указывается в днях.
-mmin Время изменения в минутах.
-atime Время последнего обращения к объекту в днях.
-amin Время последнего обращения в минутах.
-ctime Последнее изменение владельца или прав на объект в днях.
-cmin Последнее изменение владельца или прав в минутах.
-user Поиск по владельцу.
-group По группе.
-perm С определенными правами доступа.
-depth Поиск должен начаться не с корня, а с самого глубоко вложенного каталога.
-maxdepth Максимальная глубина поиска по каталогам. -maxdepth 0 — поиск только в текущем каталоге. По умолчанию, поиск рекурсивный.
-prune Исключение перечисленных каталогов.
-mount Не переходить в другие файловые системы.
-regex По имени с регулярным выражением.
-regextype <тип> Тип регулярного выражения.
-L или -follow Показывает содержимое символьных ссылок (симлинк).
-empty Искать пустые каталоги.
-delete Удалить найденное.
-ls Вывод как ls -dgils
-print Показать найденное.
-print0 Путь к найденным объектам.
-exec <команда> {} ; Выполнить команду над найденным.
-ok Выдать запрос перед выполнением -exec.

Также доступны логические операторы:

Оператор Описание
-a Логическое И. Объединяем несколько критериев поиска.
-o Логическое ИЛИ. Позволяем команде find выполнить поиск на основе одного из критериев поиска.
-not или ! Логическое НЕ. Инвертирует критерий поиска.

Полный набор актуальных опций можно получить командой man find.

Примеры использования find

Поиск файла по имени

1. Простой поиск по имени:

find / -name «file.txt»

* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня /.

2. Поиск файла по части имени:

find / -name «*.tmp»

* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp

3. Несколько условий. 

а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:

find . -name «sess_*» -a -name «*cd»

б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:

find . -name «sess_*» -o -name «*cd»

в) Более компактный вид имеют регулярные выражения, например:

find . -regex ‘.*/(sess_.*cd)’

find . -regex ‘.*/(sess_.*|.*cd)’

* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).

4. Найти все файлы, кроме .log:

find . ! -name «*.log»

* в данном примере мы воспользовались логическим оператором !.

Поиск по дате

1. Поиск файлов, которые менялись определенное количество дней назад:

find . -type f -mtime +60

* данная команда найдет файлы, которые менялись более 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

По типу

Искать в текущей директории и всех ее подпапках только файлы:

find . -type f

* f — искать только файлы.

Поиск по правам доступа

1. Ищем все справами на чтение и запись:

find / -perm 0666

2. Находим файлы, доступ к которым имеет только владелец:

find / -perm 0600

Поиск файла по содержимому

find / -type f -exec grep -i -H «content» {} ;

* в данном примере выполнен рекурсивный поиск всех файлов в директории / и выведен список тех, в которых содержится строка content.

С сортировкой по дате модификации

find /data -type f -printf ‘%TY-%Tm-%Td %TT %pn’ | sort -r

* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.

Лимит на количество выводимых результатов

Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:

find /data -type f -printf ‘%TY-%Tm-%Td %TT %pn’ | 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 . -name «*.tmp» | wc -l

5. Изменить права:

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:

crontab -e

И добавляем:

0 0 * * * /bin/find /tmp -mtime +14 -exec rm {} ;

* в данном примере мы удаляем все файлы и папки из каталога /tmp, которые старше 14 дней. Задание запускается каждый день в 00:00.
* полный путь к исполняемому файлу find смотрим командой which find — в разных UNIX системах он может располагаться в разных местах.

В операционных системах семейства Linux все объекты ОС являются файлами. Это означает, что не только данные пользователя и настройки системы хранятся в файлах, но и различные механизмы управления системой и коммуникации основаны тоже на файлах. Поэтому поиск файлов очень важен и для новичков будет очень полезно узнать, как найти местоположение того или иного файла, будь то программа, изображение или документ.

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

В популярных графических окружениях рабочего стола таких как Gnome или KDE поддерживается поиск файлов прямо в главном меню. Этот поиск выполняется реальном времени и ищет только в самой домашней папке и в нескольких стандартных подпапках, таких как Документы, Загрузки и т д. Кроме того, большинство файловых менеджеров поддерживают поиск файла в выбранной папке и её подпапках. Я не буду рассматривать это в данной статье. Вместо этого давайте сосредоточимся на утилитах, которые позволяют выполнять расширенный поиск файлов.

1. Catfish

Это простая программа для поиска файлов. В ней можно выбрать тип файла для поиска, а также время его изменения. Программа ищет по всей файловой системе, поэтому это может занять довольно много времени. Она ищет не в реальном времени, а использует поисковый индекс mlocate. Вы можете установить Catfish в Ubuntu используя такую команду:

sudo apt install catfish

После запуска программы вы можете сразу же набрать нужный запрос в строке поиска и нажать кнопку со значком лупы, например file1:

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

Кроме того, утилита поддерживает поиск по содержимому. Для этого нужно включить галочку Показать содержимое файла в настройках:

2. FSearch

Это инструмент для поиска файлов по имени работающий также как и Everything Search Engine. При первом запуске необходимо создать индекс для поиска на основе папок, в которых вы собираетесь искать файлы. Затем вы будете получать результаты поиска сразу же при вводе текста. Программа поддерживает модификаторы по типу файла, символы подстановки, операторы И/ИЛИ, регулярные выражения, сортировку по типу и размеру, а также многое другое. Вы можете найти информацию о том как установить FSearch в вашем дистрибутиве на странице программы на GitHub. При первом запуске окно программы выглядит вот так:

После запуска программы необходимо нажать кнопку Добавить папки и добавить папки, в которых вы хотите выполнять поиск с помощью кнопки со значком плюса:

Также здесь можно настроить параметры поискового индекса и частоту его обновления. Позже, индекс можно настроить открыв Правка -> Параметры -> База данных. После этого вы можете просто начать набирать имя файла в поисковой строке и он сразу же появится в списке:

Можно использовать модификатор по типу файла, например pic: для картинок:

Кроме того доступны такие модификаторы типа файла: file, folder, app, archive, audio, doc, video. Также можно использовать регулярные выражения с помощью модификатора regex:

Или искать по размеру с помощью модификатора size:

Вы можете найти все остальные модификаторы поиска на этой странице.

Существует ещё одна похожая утилита для поиска — это AngrySearch. Но она уже давно не обновлялась и её функциональность примерно такая же как и у fsearch, поэтому я не буду рассматривать её в этой статье.

3. Recoll

Это приложение тоже может выполнять поиск файлов Linux не только по имени, но и по их содержимому. Здесь используется полнотекстовый поисковый движок Xapian. Как и в предыдущем варианте необходимо сначала создать поисковый индекс. Для этого нажмите кнопку Настройка индексирования:

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

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

  • Любое слово — вхождение хотя бы одного слова из запроса в имя или содержимое;
  • Все слова — вхождение всех слов из запроса в имя или содержимое;
  • Имя файла — поиск только по имени файла;
  • Язык запросов — позволяет формировать сложные запросы с помощью языка запросов Xapian.

Для поиска файлов по имени в Linux выберите тип поиска Имя файла, и наберите запрос. Например:

Для поиска по содержимому выберите Любое слово, Все слова или Язык запросов. Например:

Можно искать по содержимому только в файлах с определённым расширением или вхождением определённых символов в имя файла используя язык запросов. Синтаксис довольно простой: имя_поля:значение. Например, так можно найти все вхождения Losst в файлах, начинающихся на file:

Более подробную информацию про все возможные модификаторы можно найти в официальной документации.

Поиск файлов в Linux по имени через терминал

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

1. find

Самая часто используемая команда поиска файла Linux на данный момент — это find. Она имеет множество возможностей: вы можете искать файлы по имени, дате изменения или создания, использовать регулярные выражения и маски, выполнять определённые действия для найденных файлов, настраивать глубину поиска и многое другое.

По умолчанию команда find ищет и файлы и каталоги. Если папку не задать явно, то писк будет выполняться в текущей папке. Указать что нужно искать именно файлы можно с помощью опции -type с параметром f, а сам запрос надо указать с помощью опции -name. Например:

find -type f -name "file"

Обратите внимание, что find будет искать файлы, имя которых точно совпадает с вашим запросом. Если вам нужно найти файлы которые содержат определённые символы в имени, используйте символы подстановки, например *:

find -type f -name "file*"

Папку для поиска нужно указать перед остальными параметрами. Например, для того чтобы найти все файлы, которые начинаются на pa в папке /etc/ используйте такую команду:

sudo find /etc/ -type f -name "pa*"

Для того чтобы не учитывать регистр символов при поиске, используйте опцию -iname вместо -name:

sudo find /etc/ -type f -iname "pa*"

Если вы хотите найти файлы только с определённым расширением, это можно сделать указав звездочку перед запросом. Например, для того чтобы получить все файлы .ini выполните:

sudo find /etc/ -type f -name "*.ini"

Более подробную информацию об этой команде читайте в статье команда find в Linux.

2. fd

Это альтернатива команды find, написанная на Rust. Она работает быстрее оригинальной find, поддерживает цветной вывод, поиск по регулярным выражениям, не учитывает скрытые файлы и файлы, перечисленные в .gitignore а также имеет более простой и удобный синтаксис. В Ubuntu утилиту можно установить с помощью следующей команды:

sudo apt install fd-find

Обратите внимание, что в Ubuntu эта команда пишется не fd, как задумали разработчики, а fdfind.

Как и find, эта утилита по умолчанию ищет в текущей папке, но вместо точного сопоставления имени, она ожидает часть имени или регулярное выражение. Например, для того чтобы найти все файлы в текущей папке, которые содержат слово file в имени достаточно команды:

fdfind file

Далее, для того чтобы найти файлы имя которых начинается на pa в папке /etc/ используйте такую команду:

sudo fdfind "^pa" /etc/

Если вам нужно искать файлы по расширению, используйте опцию -e. Например, для поиска всех ini файлов содержащих в имени букву x в папке /etc/ выполните:

sudo fdfind -e ini "x" /etc/

Более подробную информацию об утилите можно найти на её странице GitHub.

3. fzf

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

sudo apt install fzf

Когда утилита установлена, нужно перейти в папку, в которой вы хотите выполнять поиск. Например, в папку /etc/:

cd /etc/

Теперь запустите утилиту и наберите запрос pass, для того чтобы найти все файлы содержащие в названии pass:

fzf

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

Если вы хотите искать вхождения только с начала имени файла, используйте символ ^ перед запросом:

А если только с конца, то символ $. Более подробную информацию можно найти в официальной документации.

4. skim

Это ещё одна утилита для нечеткого поиска в Linux в реальном времени, написанная на Rust. Она может делать почти всё то же самое что и fzf, но более легковесная. Утилиты нет в официальных репозиториях Ubuntu, но вы можете установить её с помощью cargo:

cargo install skim

Как и при использовании fzf вам нужно перейти в папку, в которой будет выполняться поиск. Например:

cd /etc/

Теперь вы можете запустить программу и начать вводить поисковый запрос:

sk

По списку найденных файлов можно перемещаться с помощью клавиш стрелка вверх и вниз. В отличие от fzf здесь также поддерживается командный режим, который позволяет добавить дополнительный уровень фильтрации комбинируя skim с grep или другой утилитой для поиска файлов. Просто укажите команду с помощью опции -c. Например:

sk --ansi -c 'grep -r "{}" .'

После выполнения команды вы увидите не только имена файлов но и их содержимое. Здесь вы можете отфильтровать файлы по имени. Например, только содержащие в пути init.d:

А затем, переключитесь в командный режим с помощью сочетания клавиш Ctrl+Q и наберите запрос уже для поиска по содержимому:

Или же сразу можно перейти в командный режим добавив опцию -i к команде запуска:

sk --ansi -i -c 'grep -r "{}" .'

5. locate

Команда locate считается устаревшей и уже была удалена из многих дистрибутивов. Она выполняет поиск не в реальном времени, как find, а по ранее созданной базе файлов, но она делает только поиск файла по имени Linux. Вы вводите слово, которое вас интересует, и утилита выдаёт все известные ей файлы, имя которых содержит такое слово. Можно использовать регулярные выражения. Например, найдем все файлы, в имени которых содержится passwd:

locate passwd

Обратите внимание, что если файл был добавлен после создания базы, то он найден не будет. Для обновления поискового индекса locate используйте такую команду:

sudo updatedb

Более подробно об этой утилите можно прочитать в статье Команда locate в Linux.

Поиск файлов по содержимому в в терминале

Существует несколько консольных утилит для поиска файлов по их содержимому и они будут подробно описаны в отдельной статье. Это SilverSearcher, ripgrep, ack и другие. Но исторически так сложилось, что самая популярная и часто используемая утилита для поиска текста по файлам это grep. Она поставляется во всех популярных дистрибутивах по умолчанию и её возможностей хватает для большинства задач.

Для того чтобы найти файлы, которые содержат определённую строку достаточно использовать опцию -r и указать папку, в которой надо искать текст. Например, давайте найдём все файлы в /etc/, которые содержат строчку error_reporting:

sudo grep -r "error_reporting" /etc/

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

Как узнать расположение исполняемого файла Linux

Это можно сделать с помощью команды whereis. Эта команда достаточно простая и решает только одну задачу. Она показывает, где находится исполняемый файл, переданной ей программы. Например, если мы хотим узнать, в какой папке расположен grep, достаточно выполнить:

whereis grep

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .


Download Article

The easiest way to locate files by name, partial name, or date at the command line


Download Article

  • Using Find: The Basics
  • |

  • Finding by Name or Partial Name
  • |

  • Finding by Time and Date
  • |

  • Finding by Size
  • |

  • Finding by Owner or Permissions
  • |

  • Combining Find Commands
  • |

  • Performing Actions on Found Files
  • |

  • Searching for Text in Files
  • |

  • Q&A

If you’re looking for a file on your Linux system, the find command makes it easy. You can use find to search for files by name, partial name, date, modification time, size, and more. If you know which directory the file is in, you can specify that directory in your find command. If not, you can search your entire Linux system starting with the root (/) directory. This wikiHow article will teach you how to use the find command in Linux to find any file, from files you downloaded to configuration files.

Things You Should Know

  • The basic syntax of find is find <starting directory> <options> <search terms>
  • You can use asterisks as wildcards if you don’t know the exact name of the file.
  • Use the -iname option to ignore case sensitivity when using find.
  1. Image titled Find a File in Linux Step 1

    1

    You’ll typically use the find command with the syntax find /path -type f -iname filename. You can use a variation of this command to find any file or directory on your Linux machine. We’ll break down the command into simple parts.

  2. Image titled Find a File in Linux Step 2

    2

    /path/to/file is the directory in which you want to search for the file. For example, to search the current directory, use . as the path. To search your entire Linux file system, use / as the path.

    Advertisement

  3. Image titled Find a File in Linux Step 3

    3

    -type indicates the type of file or directory you’re searching for. You’ll follow -type with a flag. In our example, we’re using the f flag. When searching for files, you’ll typically use any of these three flags:

    • f: This means «regular file,» which can be a text file, image, program, configuration file, executable, and basically any type of file (including hidden files).

      • Tip: -type f is the default for the find command. This means that if you’re looking for a file (not a directory or symbolic link), you can actually leave -type f out of the file command.
    • d: Searches for directories (folders).
    • l: Searches for symbolic links to other files.
    • You can search for multiple types by separating the letters with commas. For example, to find all files, directories, and symbolic links called «etc,» you’d use find / -type f,d,l -iname etc
  4. Image titled Find a File in Linux Step 4

    4

    -iname tells find to ignore case-sensitivity. This is important if you’re not 100% sure of the file’s name or case. However, if you want find to specifically match the case you type, replace -iname with -name, which is case-sensitive.[1]

  5. Image titled Find a File in Linux Step 5

    5

    filename is the name of the file you’re looking for. If you know the exact name of the file, you’ll type it completely. If not, you can use wildcards anywhere in your search term.

    • For example, to find all configuration files on your computer, you might use find / -type f -iname "*.conf". This returns the names of files ending with .conf.
  6. Advertisement

  1. Image titled Find a File in Linux Step 6

    1

    Use find /path -iname filename to search for a file by exact name. If you know the exact name and directory of the file, you’d use this command to find it.

  2. Image titled Find a File in Linux Step 7

    2

    Use the wildcard character * to search for anything that matches the part of the query. The wildcard * character is useful for finding files when you don’t know the full name. This can help you find files with specific file extensions (e.g., .pl or .c). Some helpful examples:

    • find /home/pat -iname "*.conf"

      • This will return all of the .conf files in Pat’s user directory and subdirectories.
    • find / -type d -iname "*lib*"

      • This command finds all directories on the Linux filesystem containing the string «lib.»
  3. Image titled Find a File in Linux Step 8

    3

    Make your search results easier to manage with the less command. If you’re getting lots of results, it can be difficult to sift through them. By piping the results to the less command, you can scroll through them easily. For example:

    • find /home/pat -iname "*.conf" | less
  4. Advertisement

  1. Image titled Find a File in Linux Step 9

    1

    Use the -mtime option to find files by modification date (in days). Use this option when you want to find files last modified a certain number of days ago (or between two day ranges). Some examples:

    • find /home/pat -iname "*.txt " -mtime -2

      • This command will find all files ending with .txt in the directory /home/pat modified in the last two days.
    • Place a + before the number of days to indicate «longer than x days ago, or a to indicate fewer than x days ago .[2]
      For example:

      • find . -mtime +90 : This command will display all files in the current directory that were modified more than 90 days ago.
      • find /home/pat -iname "*test*" -mtime -90 : This command will list all files in /home/pat with «test» in the name edited in the past 90 days.
    • If you want to find files modified by minutes instead of days, use -mmin instead. For example, to find all files in the current directory modified in the last 10 minutes, you’d use find . -type f -mmin -10.
  2. Image titled Find a File in Linux Step 10

    2

    Use -atime and -ctime to find files by the date last accessed or date created. Replace -mtime with -atime to search by the last date accessed (opened), or -ctime to search by the day the file was created (e.g., 15 days ago, or more than 90 days ago.

    • If you’d rather search by minutes instead of days, replace -atime with -amin and -ctime with -cmin.
  3. Image titled Find a File in Linux Step 11

    3

    Find files between two timestamps. To search for files between two specific dates and times, use the -newermt option. You’ll need to use this option twice in your command—one for the start date of your search, and another for the end date. Here’s how it will look:

    • find / -type f -newermt "2022-12-02 11:00:00" ! -newermt "2023-2-08 12:00:00"

      • This command will find all files on the Linux system with timestamps between 12/02/2022 at 11:00 AM and 2/08/2023 at 12PM.
  4. Advertisement

  1. Image titled 690519 6 1

    Filter your search results by size. If you have lots of files with similar names, but know the size you are looking for, you can filter results by size.

    • find / -size +50M -iname filename

      • This example will return results that are 50 megabytes or larger.
      • You can use + or - to search for greater or lesser sizes.
      • Omitting the + or - will search for files exactly the specified size.
      • You can filter by bytes (c), kilobytes (k), megabytes (M), gigabytes (G), or 512-byte blocks (b).
  1. Image titled 690519 8 1

    Use the -user, -group, and -perm options to find files by owner or permissions. If you are trying to find a specific file owned by a user, or files with certain permissions, you can narrow the search.

    • Examples:

      • find / -user pat -iname filename searches for files called filename owned by the user pat.
      • find / -group users -iname filename searches for files called filename in the users group.
      • find / -perm 777 -iname filename searches for files called filename with 777 permissions (no restrictions).
  2. Advertisement

  1. Image titled 690519 7 1

    Use boolean operators to combine search filters. You can use the -and, -or, and -not operators to combine different types of searches into one. For example:

    • find /travelphotos -type f -size +200k -not -iname "*2015*"
    • The command will find files in the «travelphotos» directory that are greater than 200 kb in size but do not have «2015» anywhere in the file name.
  1. Image titled 690519 9 1

    Combine commands to perform actions when files are located. You can combine find with other commands so that you can execute them on the files that are returned by the query. You can also use this feature to run the files that appear in find results. Separate the find command and the second command with the -exec flag, and then end the line with {} ;. For example:

    • find . -type f -perm 777 -exec chmod 755 {} ;
    • This will search the current directory (and all subdirectories) for files that have 777 permissions. It will then use the chmod command to change the permissions to 755.
  2. Advertisement

  1. Image titled 690519 14 1

    1

    Use the grep command to search for strings of text within files. If you are looking for a file that contains a certain phrase or string of characters, you can use the grep command. Here’s an example of a basic grep command:

    • grep -r -i "search query" /path/to/directory/
    • The -r flag sets the search to «recursive», so it will search the current directory and all subdirectories for any file that contains the query string.
    • The -i flag indicates that the query is not case-sensitive. If you want to force the search to pay attention to case, omit the -i flag.
  2. Image titled 690519 15 1

    2

    Cut out the extra text. When you perform a grep search as above, you’ll see the file name along with the text with the matching query highlighted. You can hide the matching text and just display the file names and paths by including the following:

    • grep -r -i "search query" /path/to/directory/
  3. Image titled 690519 16 1

    3

    Hide error messages. The grep command will return an error when it tries to access folders without the correct permissions or runs into empty folders. You can send the error messages to /dev/null, which will hide them from the output.

    • grep -r -i "search query" /path/to/directory/ 2>/dev/null
  4. Advertisement

Add New Question

  • Question

    What does the ‘ls’ command do?

    Community Answer

    The ‘ls’ command lists all files in the current directory you are working in. To find out what directory you are working in, type ‘pwd’ (stands for «print working directory»).

  • Question

    Which command will display the last ten lines of a file?

    Community Answer

    You have to used tail command to display the last lines of a file, the command used is, «tail -n filename.» To display last 10 lines the command will be: tail -10 filename.

  • Question

    How can I find a file in the root directory if I’ve forgotten the name and the directory in which it was placed?

    Living Concrete

    Living Concrete

    Top Answerer

    You can try searching for a file extension, or checking places where files are commonly saved, such as your home directory. If it’s a text file, you can try using a recursive grep search (‘grep -R’) with text that you remember from the file as search criteria.

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

References

About This Article

Article SummaryX

1. Open a command prompt.
2. Type / file -iname ″filename″
3. Replace ″filename″ with the file’s name.
4. Press Enter or Return.

Did this summary help you?

Thanks to all authors for creating a page that has been read 1,071,424 times.

Reader Success Stories

  • Ahmad El-Komey

    Ahmad El-Komey

    May 17, 2016

    «I needed a quick tutorial on how to search for files, given a piece of a name, using the terminal. This tutorial is…» more

Is this article up to date?

Содержание

  1. Как получить полный путь к исполняемому файлу?
  2. Поиск в Linux с помощью команды find
  3. Общий синтаксис
  4. Описание опций
  5. Примеры использования find
  6. Поиск файла по имени
  7. Поиск по дате
  8. По типу
  9. Поиск по правам доступа
  10. Поиск файла по содержимому
  11. С сортировкой по дате модификации
  12. Лимит на количество выводимых результатов
  13. Поиск с действием (exec)
  14. Чистка по расписанию
  15. Куда устанавливаются программы в Ubuntu
  16. Куда устанавливаются программы в Ubuntu
  17. ИТ База знаний
  18. Полезно
  19. Навигация
  20. Серверные решения
  21. Телефония
  22. Корпоративные сети
  23. Поиск и расположение команд в Linux
  24. Узнать путь к директории программы

Как получить полный путь к исполняемому файлу?

Пишу скрипт, он определяет какой архитектуры исполняемый файл и подставляет ему нужные библиотеки.

При помощи команды

Как найти указанный в параметре исполняемый файл к которому не указан полный путь по переменной окружения?

Перемещено leave из talks

92972: 1379966089

124497:2097198998

Дык, никак. А кто искать то будет? Пушкин?

Если скрипты в строго определенных директориях, то пропиши эти пути в самом скрипте.

92972: 1379966089

Дык, никак. А кто искать то будет? Пушкин?

bash же как то ищет.

так он и ищет по путям в PATH

92972: 1379966089

Если скрипты в строго определенных директориях, то пропиши эти пути в самом скрипте.

Программу предполагается использовать примерно так:

92972: 1379966089

есть ли готовый парсер на bash для разбора этой переменной и поиска?

19403: 497797533

А как же революция?

Я о том, что если «программы» могут лежать только в заранее заданной директории, то ты внутри скрипта можещь написать типа blabla /mydetermineddir/$1 [another params]

45855: 581501832

зачем тебе это вообще могло понадобиться?

86912:2087359229

86912:2087359229

есть ли готовый парсер на bash для разбора этой переменной и поиска?

ааааааааааааааа, кто там рядом живёт, стукните его по голове чем-нибудь тяжёлым. 1111

он же пишет, что ему нужен поиск вне PATH, which ничего не найдет

19403: 497797533

86912:2087359229

which он как яндекс — найдёт всё, что нужно, главное правильно спросить

86912:2087359229

Ты в Архызе сейчас?

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

86912:2087359229

Надо было с mv, ты прав
pet / # mv /usr/bin/wine /usr/bin/wine_
pet / # env PATH=«$:/1» which wine
/1/wine

Какая разница, какое это отношение к вопросу имеет?

86912:2087359229

Вот именно это сказать и хотел:

Если добавить директорию в PATH, есен х, все отыщется.
Зачем ты там с каким то копированием че-то делал?

Каталог надо было вперёд ставить.
pet / # mv /usr/bin/wine_ /usr/bin/wine
pet / # ls /usr/bin/wine
/usr/bin/wine
pet / # env PATH=«/1:$» which wine
/1/wine

86912:2087359229

Какая разница, какое это отношение к вопросу имеет?

Не, непонято, если исходить из вопроса ТС, как найти скрипт, которого нет в PATH. Ладно, забей, мне, видимо, не понять.

19403: 497797533

86912:2087359229

pet / # cat /1/bzzz.sh
#! /bin/bash

pet / # env PATH=/1 /bin/bash bzzz.sh
/
/1/bzzz.sh: line 4: dirname: команда не найдена

pet / # env PATH=/1:$ bash bzzz.sh
/
.

pet / # bzzz.sh
bash: bzzz.sh: команда не найдена

я об этом и сказал

86912:2087359229

Да, я знаю.
Мне непонятно, что тебе не нравится в запуске which с новой переменной PATH для поиска?

Просто, как бы, не совсем соответствует вопросу. Может я вопрос неверно понял, хз. Ладно, проехали.

24775:300429343

В чем, собственно, проблема? %)

86912:2087359229

Но ведь пользователь введёт не полный путь к исполняемому файлу, а как чаще всего бывает просто его имя.

В этом случае исполняемый файл лежит в каталоге, содержащемся в PATH. Иначе надо вводить полный путь абсолютный, или относительный (что легко через dirname привести к первой задаче).
Как бы других-то способов нет и усложнять ничего не надо.

Абсолютно согласен, всё что можно было уже сказать по теме, в этой теме сказал самый первый комментатор 😀

PS: тему твою удалили про разум. ИМХО нет, чёткого критерия не будет.

Источник

Поиск в Linux с помощью команды find

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

Общий синтаксис

путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».

набор правил, по которым выполнять поиск.

* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.

Описание опций

Тип объекта поиска. Возможные варианты:

Также доступны логические операторы:

Полный набор актуальных опций можно получить командой man find.

Примеры использования find

Поиск файла по имени

1. Простой поиск по имени:

* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня /.

2. Поиск файла по части имени:

* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp

3. Несколько условий.

а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:

б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:

в) Более компактный вид имеют регулярные выражения, например:

* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).

* в данном примере мы воспользовались логическим оператором !.

Поиск по дате

1. Поиск файлов, которые менялись определенное количество дней назад:

* данная команда найдет файлы, которые менялись более 60 дней назад.

* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.

* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).

* все файлы, к которым обращались с 08.10.2019.

* все файлы, к которым обращались в октябре.

* все файлы, созданные с 07 сентября 2019 года.

* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50

По типу

Искать в текущей директории и всех ее подпапках только файлы:

* f — искать только файлы.

Поиск по правам доступа

1. Ищем все справами на чтение и запись:

2. Находим файлы, доступ к которым имеет только владелец:

Поиск файла по содержимому

* в данном примере выполнен рекурсивный поиск всех файлов в директории / и выведен список тех, в которых содержится строка content.

С сортировкой по дате модификации

* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.

Лимит на количество выводимых результатов

Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:

Поиск с действием (exec)

1. Найти только файлы, которые начинаются на sess_ и удалить их:

* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.

2. Переименовать найденные файлы:

3. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:

* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.

5. Передать найденные файлы конвееру (pipe):

* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.

6. Произвести замену в файлах с помощью команды sed:

* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.

Чистка по расписанию

Команду find удобно использовать для автоматического удаления устаревших файлов.

Открываем на редактирование задания cron:

* в данном примере мы удаляем все файлы и папки из каталога /tmp, которые старше 14 дней. Задание запускается каждый день в 00:00.
* полный путь к исполняемому файлу find смотрим командой which find — в разных UNIX системах он может располагаться в разных местах.

Источник

Куда устанавливаются программы в Ubuntu

Многих новичков, недавно установивших Linux и только начавших разбираться в устройстве этой замечательной операционной системы, как и меня, в свое время, интересует вопрос: куда же устанавливаются программы в Ubuntu, да и вообще, в любом дистрибутиве Linux. Файловая система Linux очень сильно отличается от Windows и это в первое время сбивает с толку.

Мы привыкли, что все программы и их файлы в Windows находятся в системном каталоге Program Files и System32, или если не в нем, то хотя бы в одном из подкаталогов. Но в Linux все намного сложнее. Здесь файлы программ, как правило, распределены по всей файловой системе. Так куда устанавливаются программы в Linux? Как найти все файлы программы? Как удалять ненужные программы? Все это мы рассмотрим в данной статье.

Куда устанавливаются программы в Ubuntu

Большинство программ, устанавливаемых с помощью стандартного пакетного менеджера распределяются по файловой системе в эти папки. Вам, наверное, интересно, как система определяет какие файлы куда копировать. Она и не определяет, это задает разработчик во время сборки пакета. Попробуйте открыть deb пакет как архив. Кроме служебных информационных файлов, касающихся установки вы там увидите структуру папок напоминающую корневую ФС Linux, это и определяет какие файлы где будут находиться. В последнее время грань четкого разделения файлов по папкам немного стерлась, появились папки /usr/bin для исполняемых файлов, а кэш некоторые программы вообще хранят в домашней папке пользователя, но традиционные Linux сервисы, такие как Samba, Apache, Ngnix и многие другие четко придерживаются стандартной структуры.

Давайте разберем на примере как распределяется программа в файловой системе. Возьмем, например, тот же сервер apache. Чтобы узнать куда были скопированы файлы программы воспользуемся утилитой dpkg.

www-servers/apache-2.2.31 (/usr/sbin/apache2)
www-servers/apache-2.2.31 (/etc/init.d/apache2)
www-servers/apache-2.2.31 (/etc/logrotate.d/apache2)
www-servers/apache-2.2.31 (/var/cache/apache2)
www-servers/apache-2.2.31 (/usr/lib64/apache2)
www-servers/apache-2.2.31 (/usr/share/apache2)
www-servers/apache-2.2.31 (/etc/apache2)
www-servers/apache-2.2.31 (/usr/include/apache2)
www-servers/apache-2.2.31 (/etc/conf.d/apache2)
www-servers/apache-2.2.31 (/var/log/apache2)

Как видите, все файлы на своих местах.

Но из этого правила есть исключения. Например, многие проприетарные программы и игры устанавливаются полностью в одну папку, так же как и в Windows. Для таких программ есть папка /opt. Посмотрим, например, на Crossover:

Надеюсь, эта статья помогла вам разобраться с вопросом куда устанавливаются программы в Ubuntu.

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Поиск и расположение команд в Linux

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

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

laptop

1

Вот классическое расположение файлов и папок в корневой папке ОС Linux. Стандарт FHS был изначально предназначен для того, чтобы во всех дистрибутивах ОС Linux могли понять и найти все, что нам нужно. Некоторые дистрибутивы Linux отклоняются от этого стандарта, но не сильно в целом данный стандарт соблюдается. Перечислим основные папки и их предназначение.

Подробнее про структуру FHS можно прочитать здесь

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

Команды, используемые для поиска:

2

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

3

Данная команда отрабатывает практически мгновенно. Команда find искала именно по синтаксису, плюс можно добавлять сложные конструкции поиска. Команда locate делает проще показывает все где находится сочетание символов.

4

5

6

7

8

Показывает, где лежит и к какому пакету относится.

Источник

Узнать путь к директории программы

Пишу программу на Си под Линухом. Нужно, чтобы файл, который создает программа, сохранялся не в одной с ней директорией, а во вложенной папке. То есть если прога (а именно исполняемый файл) лежит в /prog, то файл должен сохраниться в prog/file.

Единственный способ сделать это, который пришел мне в голову, требует, чтобы программа каким-то образом узнала, где она лежит.

Я видел способы сделать это для других языков и для Win, но вот конкретно для Си и Линуха не нашел. Помогите, люди добрые.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

tickКак узнать количество папок в директории?
Вот нашел в интернете такие команды: Данная команда, рекурсивно подсчитает количество файлов.

Как узнать атрибуты файлов и папок директории?
Здравствуйте! Знаю, как вывести с помощью функций diropen, readdir, closedir и scandir содержимое.

Как узнать путь к директории приложения
Имеется форма, на которой есть кнопка с картинкой на заднем фоне. При событии наведения на неё.

tickУзнать путь к файлу в директории приложения
Здравствуйте, мне необходимо узнать в программе путь к папке где находится программа и сохранить.

Источник

Опция Описание
-name Поиск по имени.
-iname Регистронезависимый поиск по имени.
-type

Понравилась статья? Поделить с друзьями:
  • Как найти семью в казахстане
  • Как найти свои билеты на сайте аэрофлота
  • Как составить смету расходов для проекта
  • Как составить рецепт специй
  • Как найти мягкость предшествующего согласного звука