Как найти местоположение файла linux

Содержание
  1. Linux и Windows: помощь админам и пользователям
  2. Администрируем и настраиваем Windows, Linux.
  3. 5 способов поиска файлов в Linux, используя терминал.
  4. Команда find в Linux – мощный инструмент сисадмина
  5. Поиск по имени
  6. Поиск по типу файла
  7. Поиск по размеру файла
  8. Единицы измерения файлов:
  9. Поиск пустых файлов и каталогов
  10. Поиск времени изменения
  11. Поиск по времени доступа
  12. Поиск по имени пользователя
  13. Поиск по набору разрешений
  14. Операторы
  15. Действия
  16. -delete
  17. Заключение
  18. Поиск файлов в Linux
  19. Поиск через графический интерфейс
  20. Главное меню
  21. Файловые менеджеры
  22. KFind
  23. SearchMonkey
  24. Recoll
  25. Поиск файлов через терминал. Команда find
  26. Поиск файлов по имени
  27. Поиск файлов по расширению
  28. Поиск файлов по типу
  29. Поиск файлов по размеру
  30. Поиск файлов по дате изменения
  31. Поиск файлов по правам доступа
  32. Поиск файлов по владельцу
  33. Поиск и удаление файлов
  34. Запись результатов поиска в файл
  35. Поиск файлов через терминал. Команда locate
  36. Поиск файлов через терминал. Команда grep
  37. Поиск файлов через терминал. Команда whereis
  38. Заключение
  39. Комментариев: 2

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

5 способов поиска файлов в Linux, используя терминал.

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

1) find : Для поиска файлов из командной строки вы можете использовать команду “find”. У этой команды следующий синтаксис:

find path criteria action

“path” Секция для указания директории поиска. Если ничего не указано поиск идет по текущей директории.

“criteria” Опции поиска.

“action” Опции, которые влияют на состояние поиска или контролируют его, например,

2) locate : Команда “locate” это альтернатива команде “find -name”. Команда find ищет файлы в выбранной части файловой системы и процесс может быть не очень быстрым. С другой стороны, команда locate ищет файлы в базе данный, созданной специально для этих целей /var/lib/locatedb, что происходит намного быстрее. Для обновления базы используется команда updatedb.

3) whereis :whereis” возвращает место расположения кода (опция -b), ман-страниц (опция -m), и исходные файлы (опция -s) для указанной команды. Если опции не указываются, выводится вся доступная информация. Эта команда быстрее чем “find” но менее полная.

4) which : Команда “which” ищет все пути перечисленные в переменной PATH для указанной команды.

5) type :

При вызове без опций показывает, как имена будут интерпретироваться

при использовании в качестве имени команды. Если использована опция -a, команда type выдает список всех каталогов, где есть выполняемый файл с

соответствующим именем. В список включаются также псевдонимы и функции,

если только не указана опция -p. К

хэшу команд не обращаются, если указана опция -a. Команда type возвращает 0,

если хоть один из аргументов найден, и 1 в противном случае.

Explo.ru — все про туризм и отдых: горящие туры и путевки в Турцию, Египет, отзывы туристов, фото красивых мест планеты. Напиши свой отзыв о курорте, стране или отеле в котором ты был!

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

Источник

Команда find в Linux – мощный инструмент сисадмина

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Как посмотреть скорость сетевого интерфейса linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Операторы

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

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

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

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

Действия

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

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

-delete

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

Источник

Поиск файлов в Linux

Обновл. 4 Сен 2021 |

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

Поиск через графический интерфейс

Главное меню

С помощью главного меню ОС вы можете не только искать и запускать программы, но также и выполнять поиск файлов. Подобный функционал присутствует во многих окружениях рабочего стола (KDE, GNOME, Xfce и пр.). Например, в KDE это представлено следующим образом:

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

Файловые менеджеры

Многие файловые менеджеры также предоставляют возможности поиска файлов. Например, в Dolphin для запуска поиска достаточно просто нажать кнопку со значком лупы, а затем ввести имя файла (или папки) в строку поиска. При этом вы можете выбрать папку, в которой будет выполняться поиск, а также указать дополнительные параметры (поиск по содержимому и пр.). Помимо этого в качестве поискового запроса допускается применять символы ? и * :

Поиск по содержимому в Dolphin:

KFind

В KDE, помимо вышеупомянутых инструментов поиска, также есть замечательная утилита под названием KFind. С её помощью вы можете точно настроить параметры поиска (указать имя файла, его тип и путь поиска, обычный текстовый поиск или мета-поиск, дату изменения, размер, пользователя, группу и пр.). Она также позволяет сохранять результаты поиска в виде простого текстового списка URL-адресов найденных файлов:

Читайте также:  Linux mint login incorrect

SearchMonkey

SearchMonkey позволяет выполнять поиск файла, как по имени, так и по его содержимому, по диапазону дат и пр. Но главное преимущество SearchMonkey — это возможность везде применять регулярные выражения.

Поиск с применением регулярного выражения в SearchMonkey:

Recoll

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

Установить программу можно из официальных репозиториев через командную строку:

sudo apt-get install recoll

Или через графический интерфейс:

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

Это может быть очень удобно при работе с большим объемом текстовых данных. Программа поддерживает такие форматы файлов, как: .pdf, .djvu, .doc, .docx, .odf. А также умеет находить перечисленные файлы в архивах.

Поиск файлов через терминал. Команда find

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

Вы можете применять команду find для поиска файлов и каталогов на основе их разрешений, типа, даты, владельца, размера и многого другого. Она также может быть объединена с другими инструментами, такими как grep или sed .

Общий синтаксис команды find выглядит следующим образом:

find [опции] [путь. ] [выражение]

опции — аргументы, управляющие обработкой символьных ссылок, параметрами отладки и методом оптимизации;

путь — начальный каталог (или каталоги), в которых команда find будет искать файлы;

выражение — состоит из параметров, шаблонов поиска и действий, разделенных операторами.

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

Давайте рассмотрим следующий пример:

find -L /var/www -name «*.js»

опция -L — указывает команде find следовать по символическим ссылкам;

путь /var/www — задает каталог, в котором будет выполняться поиск;

выражение -name «*.js» — сообщает команде find искать файлы, заканчивающиеся на .js (расширение JavaScript-файлов).

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

Поиск файлов по имени, вероятно, является наиболее распространенным применением команды find . Чтобы найти файл по его имени, используйте опцию -name , за которой следует имя файла, который вы ищете.

Например, для поиска файла document.pdf в каталоге /home/linuxize можно применить следующую команду:

find /home/linuxize -type f -name document.pdf

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

find /home/linuxize -type f -iname document.pdf

Критериям поиска вышеприведенной команды будут соответствовать как Document.pdf, так и DOCUMENT.pdf и т.д.

Поиск файлов по расширению

Поиск файлов по расширению аналогичен поиску файлов по имени. Например, чтобы найти внутри каталога /var/log/nginx все файлы, заканчивающиеся на .log.gz, необходимо выполнить:

find /var/log/nginx -type f -name ‘*.log.gz’

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

Чтобы найти все файлы, которые не соответствуют регулярному выражению *.log.gz вы можете использовать опцию -not . Например, чтобы найти все файлы, которые не заканчиваются на *.log.gz вы можете использовать:

find /var/log/nginx -type f -not -name ‘*.log.gz’

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

Иногда вам может потребоваться выполнить поиск файлов определенного типа: обычные файлы, каталоги или символические ссылки. В Linux, как вы помните, всё является файлом.

Для поиска файлов по их типу используется параметр -type и один из следующих идентификаторов для указания типа файла в Linux:

f — обычный файл;

l — символьная ссылка;

c — символьные устройства;

b — блочные устройства;

p — именованный канал (FIFO);

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

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

Для поиска файлов по заданному размеру необходимо добавить параметр -size . Указание размера происходит с помощью следующих суффиксов:

b — 512-байтовые блоки (по умолчанию);

w — двухбайтовые слова;

Следующая команда найдет все файлы размером 1024 байта в каталоге /tmp:

find /tmp -type f -size 1024c

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

В следующем примере мы ищем в текущем рабочем каталоге все файлы размером менее 1 МБ. Обратите внимание на символ минуса — перед значением размера:

find . -type f -size -1M

Если вы хотите выполнить поиск файлов размером более 1 МБ, то вам нужно использовать символ плюса + :

find . -type f -size +1M

Вы даже можете искать файлы в пределах диапазона размеров. Следующая команда найдет все файлы размером от 1 до 2 МБ:

find . -type f -size +1M -size 2M

Поиск файлов по дате изменения

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

Читайте также:  Какое у меня оборудование линукс

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

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

find /etc/dovecot/conf.d -name «*.conf» -mtime 5

Вот еще один пример фильтрации файлов на основе даты изменения с помощью параметра -daystart . Следующая команда выведет список всех файлов в каталоге /home, которые были изменены 30 или более дней назад:

find /home -mtime +30 -daystart

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

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

Например, чтобы найти внутри каталога /var/www/ravesli все файлы с разрешением 644, вы должны использовать:

find /var/www/ravesli -perm 644

Рассмотрим следующий пример команды:

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

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

Поиск файлов по владельцу

Чтобы найти файлы, принадлежащие определенному пользователю или группе, применяются параметры -user и -group .

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

find / -user ravesli

Вот еще один пример. Допустим, вы хотите найти все файлы, принадлежащие пользователю www-data, и изменить владельца соответствующих файлов с www-data на nginx. Вам нужно выполнить следующий набор команд:

find / -user www-data -type f -exec chown nginx <> \;

Поиск и удаление файлов

Чтобы удалить все совпадающие с поисковым запросом файлы, необходимо в конец поискового запроса добавить опцию -delete .

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

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

find /var/log/ -name *.temp -delete

Предупреждение: Используйте опцию -delete с особой осторожностью. Команда find вычисляется как выражение, и если вы добавите опцию -delete в начало данного выражения, то команда удалит всё в указанных вами папках.

Когда дело доходит до каталогов, команда find , как и команда rmdir , может удалять только пустые каталоги.

Запись результатов поиска в файл

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

find /etc -type f -name «*.conf» > conf_search

Она производит поиск в каталоге /etc всех файлов, имеющих расширение .conf, и записывает результат в файл conf_search.

Поиск файлов через терминал. Команда locate

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

Стоит заметить, что если файл появился в системе уже после создания базы, то он не будет найден.

Иногда вам может потребоваться обновить базу данных, к которой обращается locate . Для этого необходимо ввести команду updatedb (её запуск производится от имени суперпользователя):

Поиск файлов через терминал. Команда grep

Команда grep может использоваться не только в роли фильтра для других команд, но и производить поиск файлов. Для этого необходимо задать параметр -r и указать папку, в которой следует искать текст. Предположим, что мы хотим найти в каталоге /var/log все файлы, которые содержат строку error:

sudo grep -r «error» /var/log

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

Поиск файлов через терминал. Команда whereis

Команда whereis выполняет только одну задачу — отображает местоположение исполняемого файла, переданного ей в качестве параметра. Например, для того, чтобы узнать, где находится исполняемый файл команды uname , достаточно выполнить:

Заключение

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

Поделиться в социальных сетях:

26 команд в Linux, которые должен знать каждый сисадмин

Комментариев: 2

Стоит добавить, что для обновления базы файлов, по которой осуществляется поиск с командой “locate”, есть команда “updatedb”.
А пакет, например, для Ubuntu или CentOS, в котором есть locate и updatedb — mlocate

Источник

Оцените статью