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

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

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

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

Синтаксис

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

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

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

Примеры

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

Читайте также:  Ntfs support in linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Действие

Выполним команду 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».

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

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

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

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

Во время установки параметров поиска можно вводить несколько признаков. К примеру, если требуется найти файлы, имеющие расширение «.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

Читайте также:  Температура процессора линукс ubuntu

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

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

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

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

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

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

Источник

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

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

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

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

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

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

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

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

Следующая команда ищет файл 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.

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

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

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

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

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

Критерий -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.

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

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

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

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

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

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

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

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

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

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

Операторы

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

Например, чтобы найти файлы размером более 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.

    -delete

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

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

    -exec:

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

    • command – это команда, которую вы желаете выполнить для результатов поиска. Например:
      • rm
      • mv
      • cp

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

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

      $ find . -name "*.jpg" -exec cp <> /backups/fotos \;

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

      Заключение

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

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

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

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

      image

      Источник

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