Это руководство поможет вам получить список владельцев всех файлов в каталоге Linux.
Команды, показанные здесь, являются универсальными и, как ожидается, будут работать с любым дистрибутивом Linux.
Статья основана на Ubuntu 18.04, 16.04 и CentOS 7.
Работа с файлами, каталогами и разрешениями пользователей является повседневной задачей при администрировании систем Linux.
Почти все в Linux – это файл, и знание того, как проверить и изменить право собственности на файл / каталог, пригодится.
Список владельцев файлов в каталоге с помощью команды stat
stat – это инструмент командной строки, используемый для отображения состояния файловой системы или файловой системы в системах Linux / Unix.
В Ubuntu и во всех системах на базе Debian команда stat предоставляется пакетом coreutils.
Если по какой-либо причине этот пакет не установлен, его можно установить с помощью команды:
# sudo apt-get -y install coreutils
В CentOS команда также предоставляется пакетом coreutils, который может быть установлен с помощью yum, если отсутствует:
# sudo yum -y install coreutils
После подтверждения того, что команда существует, мы будем использовать ниже опции, чтобы получить владельцев файлов в каталоге:
-c: указать формат
% U: Формат для печати имени пользователя владельца файла
Таким образом, синтаксис команды:
# stat -c %U <file>
Для всех файлов используйте знак подстановки *.
См. Примеры ниже:
# cd ~ # stat -c %U * jmutai jmutai jmutai
Проблема с этим выводом заключается в отсутствии сопоставления между файлом и владельцем.
Нам нужно будет использовать bash для сопоставления файла и владельца.
Итак, мы запустим команду, как показано ниже:
# cd /dir # files=`ls` # for file in $files; do owner=`stat -c %C $file`; echo $file $owner; done
Вывод для выше будет в формате <файл> <владелец>, который должен быть легко интерпретирован.
Development jmutai Documents root ping_all.sh dan examples.desktop benard
Вы можете узнать больше о команде stat
# man stat
Список владельцев файлов в каталоге с помощью команды find
find – это инструмент командной строки Linux, который часто используется для поиска файлов в каталоге.
С помощью команды find вы можете указать владельцев файлов в каталоге
Точный синтаксис команды для использования:
# find /dir -printf '%u\n'
Это действие будет делать рекурсивный поиск и листинг по умолчанию.
Вы можете выполнять дополнительную фильтрацию, например, выводить уникальные имена пользователей, чтобы избежать дублирования.
Для этого проведите вывод команды сортировки с параметром -u
# find / dir -printf '% u \ n' | sort -t: -u
Чтобы включить владение файловой группой, добавьте параметр% g в функцию вывода.
# find / dir -printf '% u:% g \ n' | sort -t: -u
В приведенном ниже примере будут показаны все уникальные имена пользователей, хранящиеся в каталоге / var /
См. Следующий пример для имен пользователей и групп:
Использование команды ls
Вы также можете использовать команду ls для проверки владельца файлов и каталогов в Linux.
Единственная проблема заключается в том, как обрабатывать вывод
# ls -lh /dir # ls -lhR /dir
Три команды должны помочь вам идентифицировать владельцев файлов и каталогов на ваших машинах Linux.