Используйте опции find
На самом деле нет необходимости в /bin/ls
;
Find имеет опцию, которая делает именно это:
find . -maxdepth 2 -type d -ls
Чтобы увидеть только один интересующий вас уровень подкаталогов, добавьте -mindepth
к тому же уровню, что и -maxdepth
:
find . -mindepth 2 -maxdepth 2 -type d -ls
Использовать форматирование вывода
Если показанные детали должны отличаться, -printf
может показать любую информацию о файле в пользовательском формате;Чтобы показать символические разрешения и имя владельца файла, используйте -printf
с %M
и %u
в format
.
Я заметил позже, что вы хотите получить полную информацию о владельце, которая включаетгруппа.Используйте %g
в формате для символического имени или %G
для идентификатора группы (как и %U
для числового идентификатора пользователя)
find . -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
Это должно дать вам только необходимую информацию,только для правильных файлов.
Я приведу пример, который показывает фактически разные значения для пользователя и группы:
$ sudo find /tmp -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
drwx------ www-data www-data /tmp/user/33
drwx------ octopussy root /tmp/user/126
drwx------ root root /tmp/user/0
drwx------ siegel root /tmp/user/1000
drwxrwxrwt root root /tmp/systemd-[...].service-HRUQmm/tmp
(отредактировано для удобства чтения: отступ, сокращенная последняя строка)
Замечания по производительности
Хотя время выполнения в основном не имеет значения для такого рода команд, увеличение производительности здесь достаточно велико, чтобы сделать егоСтоит отметить это:
Мы не только сохраняем создание нового процесса для каждого имени - огромная задача - информацию даже не нужно читать, поскольку find
уже знаетэто.