Linux find files by owner

Содержание
  1. UNIX / Linux Find File Owner Name
  2. How do I find out owner / group name for a file?
  3. ls -l file mode (permissions)
  4. Linux / Unix Find All The Files Owned By a Particular User / Group
  5. Linux / Unix Find All The Files Owned By a Particular User / Group
  6. Find file owned by a group
  7. Find all *.mp4 files by group vivek
  8. Find file owned by user
  9. How to find files by users vivek and wendy
  10. Команда find в Linux – мощный инструмент сисадмина
  11. Поиск по имени
  12. Поиск по типу файла
  13. Поиск по размеру файла
  14. Единицы измерения файлов:
  15. Поиск пустых файлов и каталогов
  16. Поиск времени изменения
  17. Поиск по времени доступа
  18. Поиск по имени пользователя
  19. Поиск по набору разрешений
  20. Операторы
  21. Действия
  22. -delete
  23. Заключение
  24. Команда find в Linux
  25. Основная информация о Find
  26. Основные параметры команды find
  27. Критерии
  28. Примеры использования
  29. 1. Поиск всех файлов
  30. 2. Поиск файлов в определенной папке
  31. 3. Ограничение глубины поиска
  32. 4. Инвертирование шаблона
  33. 5. Несколько критериев
  34. 6. Несколько каталогов
  35. 7. Поиск скрытых файлов
  36. 8. Поиск по разрешениям
  37. 9. Поиск файлов в группах и пользователях
  38. 10. Поиск по дате модификации
  39. 11. Поиск файлов по размеру
  40. 12. Поиск пустых файлов и папок
  41. 13. Действия с найденными файлами
  42. Выводы

UNIX / Linux Find File Owner Name

Q. How do I find out the name of file / directory owner under UNIX / Linux operating systems?

A. You can use ls -l command (list information about the FILEs) to find our the file / directory owner and group names.

The -l option is known as long format which displays Unix / Linux / BSD file types, permissions, number of hard links, owner, group, size, date, and filename. In some environments and UNIX versions / Linux distributions, providing the option –color (for GNU ls) or -G (FreeBSD ls) causes ls to highlight different types of files with different colors.

(Fig. 01: Linux file colors)

(Fig. 02: Understanding Linux / UNIX file colors code [ image credit wikipedia] )

How do I find out owner / group name for a file?

Type the ls -l command at a shell prompt:
$ ls -l filename
Sample output:

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare✨
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
    • How to protect Linux against rogue USB devices using USBGuard

Join Patreon

  • -rw-r–r– : file mode
  • 1 – number of links
  • vivek – Owner name (if user name is not a known user, the numeric user id displayed)
  • admin – Group name (if group name is not a known group, the numeric group id displayed)
  • 2558 – number of bytes in the file (file size)
  • Jan 8 07:41 – abbreviated month, day-of-month file was
    last modified, hour file last modified, minute file last modified
  • filename – File name / pathname

ls -l file mode (permissions)

Quoting from the unix ls command man page – the file mode printed under the -l option consists of the entry type and the permissions. The entry type character describes the type of file, as follows:

Regular file.
b Block special file.
c Character special file.
d Directory.
l Symbolic link.
p FIFO.
s Socket.
w Whiteout.

The next three fields are three characters each: owner permissions, group permissions, and other permissions. Each field has three character positions:

  1. If r, the file is readable; if -, it is not readable.
  2. If w, the file is writable; if -, it is not writable.
  3. The first of the following that applies:
  • S : If in the owner permissions, the file is not executable and set-user-ID mode is set. If in the group permissions, the file is not executable and set-group-ID mode is set.
  • s : If in the owner permissions, the file is executable and set-user-ID mode is set. If in the group permissions, the file is executable and set group-ID mode is set.
  • x : The file is executable or the directory is searchable.
  • : The file is neither readable, writable, executable, nor set-user-ID nor set-group-ID mode, nor sticky.
  • These next two apply only to the third character in the last group (other permissions).
    • T : The sticky bit is set (mode 1000), but not execute or search permission.
    • t : The sticky bit is set (mode 1000), and is search able or executable.
    Читайте также:  Windows 10 original release

    See ls command man page for more information:
    $ man ls

    🐧 Get the latest tutorials on Linux, Open Source & DevOps via

    Источник

    Linux / Unix Find All The Files Owned By a Particular User / Group

    Linux / Unix Find All The Files Owned By a Particular User / Group

    Let us see how to use the find command to locate all files/folders owned by one or many users on Linux or Unix-like system.

    Find file owned by a group

    Tutorial details
    Difficulty level Easy
    Root privileges Yes
    Requirements Linux or Unix
    Est. reading time 2m

    Use the following syntax to find files owned by users(s) in Linux/Unix:
    find directory-location -group < group-name >-name < file-name >
    Where,

    • directory-location : Locate the file in this directory path.
    • -group : Find the file belongs to group-name.
    • -name : The file name or a search pattern

    In this example, locate or find all files belongs to a group called “ftpusers” in the /home directory:
    # find /home -group ftpusers
    To find all *.c file belongs to a group called “ftpusers” in /data/project directory, run:
    # find /data/project -group ftpusers -name «*.c»
    OR do case insensitive search:
    # find /data/project -group ftpusers -iname «*.c»

    Find all *.mp4 files by group vivek

    Find file owned by user

    The syntax is:
    find directory-location -user < username >-name < file-name >
    Where,

    • directory-location : Locate files or directories in this directory location.
    • -user < user-name >: Find the file belongs to user.
    • -name : File name or pattern.

    In this example, locate or find all file belongs to a user called “vivek” in /var directory:
    # find /var -user vivek
    To find all *.pl (perl files) file belongs to a user called “vivek” in /var/www directory, enter:
    # find /var/www -user vivek -name «*.pl»

    • No ads and tracking
    • In-depth guides for developers and sysadmins at Opensourceflare✨
    • Join my Patreon to support independent content creators and start reading latest guides:
      • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
      • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
      • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
      • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)
      • How to protect Linux against rogue USB devices using USBGuard

    Join Patreon

    How to find files by users vivek and wendy

    ### match files only ##
    # find / -type f -user vivek -o -user wendy
    ### match dirs only ##
    # find / -type d -user vivek -o -user wendy

    Conclusion

    You just learned how to find all of the files created by a particular user/group and display them to the screen. For more info see find command man page.

    🐧 Get the latest tutorials on Linux, Open Source & DevOps via

    Источник

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

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

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

    Источник

    Команда find в Linux

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

    В этой статье мы поговорим о поиске с помощью очень мощной команды find Linux, подробно разберем ее синтаксис, опции и рассмотрим несколько примеров.

    Основная информация о Find

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

    Утилита find предустановлена по умолчанию во всех Linux дистрибутивах, поэтому вам не нужно будет устанавливать никаких дополнительных пакетов. Это очень важная находка для тех, кто хочет использовать командную строку наиболее эффективно.

    Команда find имеет такой синтаксис:

    find [ папка] [ параметры] критерий шаблон [действие]

    Папка — каталог в котором будем искать

    Параметры — дополнительные параметры, например, глубина поиска, и т д

    Критерий — по какому критерию будем искать: имя, дата создания, права, владелец и т д.

    Шаблон — непосредственно значение по которому будем отбирать файлы.

    Основные параметры команды find

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

    • -P никогда не открывать символические ссылки
    • -L — получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
    • -maxdepth — максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
    • -depth — искать сначала в текущем каталоге, а потом в подкаталогах
    • -mount искать файлы только в этой файловой системе.
    • -version — показать версию утилиты find
    • -print — выводить полные имена файлов
    • -type f — искать только файлы
    • -type d — поиск папки в Linux

    Критерии

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

    • -name — поиск файлов по имени
    • -perm — поиск файлов в Linux по режиму доступа
    • -user — поиск файлов по владельцу
    • -group — поиск по группе
    • -mtime — поиск по времени модификации файла
    • -atime — поиск файлов по дате последнего чтения
    • -nogroup — поиск файлов, не принадлежащих ни одной группе
    • -nouser — поиск файлов без владельцев
    • -newer — найти файлы новее чем указанный
    • -size — поиск файлов в Linux по их размеру

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

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

    1. Поиск всех файлов

    Показать все файлы в текущей директории:

    2. Поиск файлов в определенной папке

    Показать все файлы в указанной директории:

    Искать файлы по имени в текущей папке:

    Не учитывать регистр при поиске по имени:

    find . -iname «test*»

    3. Ограничение глубины поиска

    Поиска файлов по имени в Linux только в этой папке:

    find . -maxdepth 1 -name «*.php»

    4. Инвертирование шаблона

    Найти файлы, которые не соответствуют шаблону:

    find . -not -name «test*»

    5. Несколько критериев

    Поиск командой find в Linux по нескольким критериям, с оператором исключения:

    find . -name «test» -not -name «*.php»

    Найдет все файлы, начинающиеся на test, но без расширения php. А теперь рассмотрим оператор ИЛИ:

    find -name «*.html» -o -name «*.php»

    6. Несколько каталогов

    Искать в двух каталогах одновременно:

    find ./test ./test2 -type f -name «*.c»

    7. Поиск скрытых файлов

    Найти скрытые файлы:

    8. Поиск по разрешениям

    Найти файлы с определенной маской прав, например, 0664:

    find . type f -perm 0664

    Найти файлы с установленным флагом suid/guid:

    find / -perm 2644

    find / -maxdepth 2 -perm /u=s

    Поиск файлов только для чтения:

    find /etc -maxdepth 1 -perm /u=r

    Найти только исполняемые файлы:

    find /bin -maxdepth 2 -perm /a=x

    9. Поиск файлов в группах и пользователях

    Найти все файлы, принадлежащие пользователю:

    find . -user sergiy

    Поиск файлов в Linux принадлежащих группе:

    find /var/www -group developer

    10. Поиск по дате модификации

    Поиск файлов по дате в Linux осуществляется с помощью параметра mtime. Найти все файлы модифицированные 50 дней назад:

    Поиск файлов в Linux открытых N дней назад:

    Найти все файлы, модифицированные между 50 и 100 дней назад:

    find / -mtime +50 –mtime -100

    Найти файлы измененные в течении часа:

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

    Найти все файлы размером 50 мегабайт:

    От пятидесяти до ста мегабайт:

    find / -size +50M -size -100M

    Найти самые маленькие файлы:

    find . -type f -exec ls -s <> \; | sort -n -r | head -5

    find . -type f -exec ls -s <> \; | sort -n | head -5

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

    find /tmp -type f -empty

    13. Действия с найденными файлами

    Для выполнения произвольных команд для найденных файлов используется опция -exec. Например, выполнить ls для получения подробной информации о каждом файле:

    find . -exec ls -ld <> \;

    Удалить все текстовые файлы в tmp

    find /tmp -type f -name «*.txt» -exec rm -f <> \;

    Удалить все файлы больше 100 мегабайт:

    find /home/bob/dir -type f -name *.log -size +100M -exec rm -f <> \;

    Выводы

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

    Источник

    Читайте также:  Scheduling services in windows
  • Оцените статью