Linux как найти папку по имени

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

Как выполнить поиск файлов и папок в Linux

В качестве вступительного слова дадим некоторое описание того, как вообще можно совершать поиск в linux. Для этих целей есть множество программ, но некоторые из них уже стали классикой поиска в linux. Подчеркнем, в данной статье мы сконцентрируемся исключительно на linux. Это означает, что даже если вы встретите утилиты с теми же самыми названиями в Solaris или операционных системах на ядрах BSD, приведенные советы могут работать не всегда. Так же это относится к busybox, которая реализует лишь небольшую часть функциональности оригинальных утилит.

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

Поиск файла по имени при помощи утилиты locate

Чтобы выполнить просто поиск файла по имени в Linux логичнее использовать команду locate — за счет заранее подготовленной базы она быстро выдаст нужный результат:

Если же вы получили сообщение о том, что команда не найдена, возможно её нужно установить. Для Debian-based дистрибутивов (Ubuntu, Mint) установить её можно командой:

# apt-get install mlocate

Пользователям RedHat, CentOS и Fedora стоит выполнить

# yum install mlocate

После установки нужно создать/обновить базу данных — файл, содержащий в себе «снимок» файловой системы, благодаря которому locate работает так быстро:

Т.е. вместо того, чтобы каждый раз проходиться по всей файловой системе, locate доверяет updatedb создать файл, содержащий в себе все имена и пути файловой системы, и выполняет поиск в нем. Важно поддерживать его актуальность, иначе вы можете случайно найти уже давно удаленные файлы, или не найти новые. Поэтому updatedb при инсталляции «вешается» на CRON и выполняется автоматически — вы можете в этом убедиться, посмотрев на файлы заданий CRON.

Поиск в Linux при помощи утилиты find

Куда более мощным и гибким инструментом для поиска файлов и папок в Linux выступает команда find. Её синтаксис упрощенно выглядит так:

find [path. ] [expression]

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

Чтобы выполнить в linux поиск файла по имени по всей файловой системе нужно ввести:

# find / -name myfilename

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

# find / -name «*part_of_name*»

«*» означает любое количество любых символов. Это дает нам возможность также производить поиск файлов по расширению:

Поиск файла по дате

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

# find /home -mtime -5

Данная команды выведет все файлы из каталога /home, измененные не более 5-ти дней назад.

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

А так, например, можно выполнит поиск файлов по размеру:

# find /home -size +1G

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

Поиск папки

На самом деле поиск папки в linux ничем не отличается от поиска файла, так как папка — это файл. Однако find дает нам возможность указать тип. Например, чтобы явно выполнить поиск только папок, имена которых содержат слово, например, mysql, выполните

Читайте также:  Windows 10 mobile redstone

# find / -type d -name «*mysql*»

Здесь ключ «-type» указывает на тип. На текущий момент времени find поддерживает следующие типы:

  • b — блочное устройство
  • c — символьное устройство
  • d — папка (дирректория)
  • p — именнованный канал
  • f — обычный файл
  • l — символическая ссылка
  • s — сокет
  • D — дверь (только для Solaris)

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

Поиск текста в Linux при помощи утилиты grep

Да, grep действительно очень хорош, когда речь заходит о поиске текста в файлах в linux по паттерну. Сразу оговоримся, что искать текст мы будем в файлах в формате plain text — чистый текст, таких как конфигурационные файлы, сценарии командного интерпретатора (bash. python, php. ) и др. Искать по файлам Word и Excel грепом эффективно вряд ли получится.

Итак, чтобы выполнить поиск строки по всем файлам в каталоге, например /etc следует ввести

# grep -lri root /etc/*

Такая команда выведет имена всех файлов, в которых удастся найти заветные 4 буквы «root». Здесь ключ «-l» заставляет grep выводить только имена файлов. Т.е. если вы хотите увидить ещё и ту саму строку, где удалось найти запрашиваемое слово, то «-l» стоит не указывать. Ключ «-r» выполняет поиск не только по /etc, но и по всем файлам во всех подпапках. И наконец ключ «-i» говорит не принимать во внимание регистр, т.е. grep будет искать не только слово «root», но и «ROOT», и «rOOt». Вы поняли

Конечно, вмемогущий grep поддерживает регулярные выражения. Чтобы выполнить, например, поиск строки, явно начинающийся всё с того же слова, введите

# grep -lri ^root /etc/*

Крышка в начале слова «root» обязывает grep выводит только те файлы, где слово «root» стоит в начале строки. И таких трюков достаточно много. Если вы еще не знакомы с regex, то стоит начать хотябы с википедии

Источник

Как пользоваться командой find

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

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

Синтаксис

«find»- это одна из самых популярных и особенно важных утилит, которая устанавливается в операционной системе Линукс. Такая команда дает возможность быстро находить различные файлы и каталоги путем использования специальных условий. Она ищет требуемые данные по разрешению, собственнику, группе, объему, типу и иным условиям.

Данная утилита установлена «по умолчанию» в каждом дистрибутиве ОС Linux. Пользователю нет необходимости монтировать на ПК какие-либо дополнительные пакеты. Такая особенность позволяет максимально эффективно пользоваться командными строками.

find [директория] [опции][критерии поиска](операторы) [действия]

  • Директория. Это путь, где поиск ищет требуемую информацию.
  • Опции. Здесь можно ввести дополнительные аргументы, а также настроить глубину.
  • Критерий. Перед поиском требуется определиться с критерием, с помощью которого будут найдены данные. К критериям относится имя файла, дата его создания, владелец, права и многое другое.
  • Операторы. Используются для объединения критериев поиска.
  • Действия. Устанавливаются предварительно. С их помощью отбираются нужные файлы.
  • -L — опция указывает, что нужно переходить по символическим ссылкам.
  • -P — указывает, что по символическим ссылкам не переходить.
  • -depth или -d — искать в директории в которой находишься, а также в подкаталогах.
  • -print — выводить на экран полные имена документов.
  • -type d — опция type показывает какой тип искать, буква d указывает на каталоги.
  • —type f — буква f указывает на поиск файлов.
  • -version — информация о версии утилиты.
  • -size — размер.
  • -name — искать по имени.
  • -group — искать по группе.
  • -nogroup — файлы, которые не относятся ни к одной группе.
  • -mtime — поиск по дате изменения документа.
  • -atime — искать по дате чтения.
  • -user — владелец документа.

ВАЖНО! Критерии можно объединять используя операторы.

  • -exec команда \; — запустить команду
  • -ls — выполнить ls.

Примеры

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

Читайте также:  Setting utility series sony vaio windows 10

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

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

Имеется и альтернативный вариант – «find .».

Для обнаружения файлов в конкретной директории требуется в терминале набрать название утилиты и путь. Например /var/log

Искать в домашнем каталоге пользователя

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

Дата модификации

Чтобы найти документы по дате, необходимо использовать критерии «mtime, atime».

  • mtime — модификация.
  • atime — чтение.

Найдем все файлы в каталоге /home, которые открывались 120 дней назад.

find /home -atime 120

Почти тоже самое будет, если нужно найти документы, которые изменялись 120 дней назад.

find /home -mtime 120

Поиск файла в директории с помощью критерия «по имени»

Чтобы найти файл по имени в требуемой директории необходимо использовать опцию «-name».

find /var/log -name «test.log»

Она в считанные секунды найдет файл «test.log». Одновременно с этим, будут показаны все данные, имеющие расширение «.log».

Поиск файлов определённого размера

Если требуется найти файл, размер которого известен пользователю, вводится -size с указанием размера.

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

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

find / -size +12M -size -25M

Действие

Выполним команду ls в каталоге run, для документов, которые изменялись 150 дней назад. Будем использовать действие «ls».

find /run -mtime 150 -type f -ls

Запустим утилиту ls, в каталоге home, для файлов больше 5000 байт.

find /home -size +5000c -type f -exec cat\;

Поиск документов в нескольких директориях

Чтобы выполнить такой поиск, необходимо вводить пути директорий через пробел. Например /var /home.

find /var /home -name «file.txt»

Она дает возможность найти файл с именем «file.txt» в директориях формата «/var» и «/home».

Без учета регистра, используя критерий «по имени»

Найдем документ test.txt без учета регистра в каталоге /home. Для этого, будем использовать «iname».

find /home -iname «test.txt»

В итоге на экране вашего монитора появятся файлы, имеющие название «test.txt». Их может быть более двух.

Поиск файлов, которые отличаются от упомянутых

Зачастую пользователю нужно найти определенные данные, которые отличаются от определённого типа файлов. Для этих целей необходимо использовать оператор «-not» для отрицания.

find /root -not -name «*.txt»

По большому количеству критериев

Во время установки параметров поиска можно вводить несколько признаков. К примеру, если требуется найти файлы, имеющие расширение «.txt» и «.html», нужно ввести команду

$ find /var -regex «.*\.\(txt\|html\)$»

Использование оператора

Допускается одновременное совмещение нескольких критериев. Система обнаружит информацию, которая будет удовлетворять одному из условий. Для этих целей потребуется использование одного из операторов or (или), and (и), not (отрицание не).

find /var/log/exim4 -name «*.txt» -оr -name «test*»

Права доступа

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

find /var/log -type f -perm 777

Почти тоже самое будет для папок с правами 777.

find /var/log -type d -perm 777

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

find /var/log -type f -perm /a=x

Найдем файлы в каталоге run, у которых есть право читать.

find /run -perm /u=r

Ищем все скрытые файлы

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

find /etc -type f name «.*»

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

Чтобы найти файлы, которые относятся к определённой группе, необходимо указать аргумент «group».

find /run -group apache

Существует множество способов применения find. Выше описаны лишь некоторые примеры, которые демонстрируют широкую функциональность утилиты.

Источник

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

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

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

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

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

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

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

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

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

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

Следующая команда ищет файл 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 будут перечислены только каталоги:

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

Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -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 может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.

Источник

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