Linux find files group

Команда 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 – сокеты;
Читайте также:  Clamtk linux как пользоваться

Например, указав критерий -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

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

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

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

      Источник

      6 Popular Examples to Find Files owned by Group(s) in Linux/Unix 1

      In this article, I will take you through 6 Popular Examples to find Find Files and Directories Owned by Group(s) in Linux/Unix based Systems. In many occasions you might have noticed that you need to find all the files owned by Group to perform some specific task. This can easily be possible by using find command in Linux/Unix based systems. You can even find files based on file name or by using some search pattern based on your requirements. We will understand how this can be done by using various examples.

      6 Popular Examples to Find Files owned by Group(s) in Linux/Unix

      Unix/Linux Find Files and Directories Owned By Group(s)

      Example 1: How to Find a Particular File Owned by Group in Linux/Unix

      If you want to find a particular file owned by a particular group then you can use below find command. In this example, we are looking for hello.txt file owned by group centos using find / -group centos -name hello.txt command.

      [root@localhost ~]# find / -group centos -name hello.txt /root/hello.txt

      / : Search all the files under / path.

      -group : File is owned by group. More can be checked on Find command Man Page.

      -name : Base of file name (the path with the leading directories removed) matches shell pattern pattern.

      Please note that here I am using root user to run all the below commands.You can use any user with sudo access to run all these commands. For more information Please check Step by Step: How to Add User to Sudoers to provide sudo access to the User.

      Example 2: How to Find All the Files and Directories Owned by Group

      If you want to find all the files and directories owned by a particular group then you need to simply use below find command. In this example, we are looking for all the files and directories owned by group centos using find / -group centos command.

      [root@localhost ~]# find / -group centos /root/hello /root/example /root/example/hello.rs /root/example/hello /root/hello.txt /root/example.txt /var/db/sudo/lectured/centos /home/centos /home/centos/.bash_logout /home/centos/file /home/centos/.bash_history /home/centos/example.txt /home/centos/.bash_profile /home/centos/.bashrc /home/centos/output.txt /home/centos/CentOS.ISO /home/centos/.Xauthority

      Example 3: How to Only Find the Files Owned by a Particular Group

      If you only want to find the files owned by a particular group and not the directories then you need to use -type f option with find command as shown below. In this example, we are only looking for the files owned by group centos using find / -group centos -type f command.

      [root@localhost ~]# find / -group centos -type f /root/example/hello.rs /root/example/hello /root/hello.txt /root/example.txt /var/db/sudo/lectured/centos /home/centos/.bash_logout /home/centos/.bash_history /home/centos/example.txt /home/centos/.bash_profile /home/centos/.bashrc /home/centos/output.txt /home/centos/CentOS.ISO /home/centos/.Xauthority

      -type : File is of block, character, regular file, symbolic link etc. More can be checked on Find command Man Page.

      There is another way which you can use to find all the files owned by a particular group. In this way, you need to use wildcard character( * ) with -name option to search all the files under / partition.

      [root@localhost ~]# find / -group centos -type f -name "*" /root/example/hello.rs /root/example/hello /root/hello.txt /root/example.txt /var/db/sudo/lectured/centos /home/centos/.bash_logout /home/centos/.bash_history /home/centos/example.txt /home/centos/.bash_profile /home/centos/.bashrc /home/centos/output.txt /home/centos/CentOS.ISO /home/centos/.Xauthority /root/example/hello.rs /root/example/hello /root/hello.txt /root/example.txt /var/spool/mail/centos /home/centos/.bash_logout /home/centos/.bash_history /home/centos/example.txt /home/centos/.bash_profile /home/centos/.bashrc /home/centos/output.txt /home/centos/CentOS.ISO /home/centos/.Xauthority

      Example 4: How to Find All .txt Files owned by a Particular Group

      If you want to find a certain type of files instead of looking for all the files then you can use below find command in Linux. In this example, we are looking for all .txt files owned by group centos using find / -group centos -name «*.txt» command.

      [root@localhost ~]# find / -group centos -name "*.txt" /root/hello.txt /root/example.txt /home/centos/example.txt /home/centos/output.txt

      Example 5: How to Find all the directories owned by a Particular Group

      If you want to find all the directories owned by a particular group then there are two ways you can find that. One way is by using below find command where you don’t have to specify the -name option to search all the directories by default. In this example we are searching all the directories owned by group centos using find / -group centos -type d command.

      [root@localhost ~]# find / -group centos -type d /root/example /home/centos /home/centos/file

      The other way you can also use to find all the directories owned by a Specific group using below find command where you can specify star(*) with -name option to search all the directories. Both commands can be used interchangeably.

      [root@localhost ~]# find / -group centos -type d -name "*" /root/example /home/centos /home/centos/file

      Example 6: How to Find a File Owned by a Particular User and a Particular Group

      If you want to find a file owned by a particular user and a particular group then you need to use both -user and -group option with find command as shown below. In this example, we are searching for all the files owned by user root and group centos using find / -user root -group centos -type f command.

      [root@localhost ~]# find / -user root -group centos -type f /var/db/sudo/lectured/centos

      Popular Recommendations:-

      Источник

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