LINUX.ORG.RU

Получить владельца файла без ls


0

0

Проблема заключается в том, что выцепить владельца файла из вывода ls -l далеко не всегда возможно, поскольку никто не отменял пробелов в названии владельца и группы. Таким образом, ни awk, ни cut здесь не помогают. Пока что я вижу только один выход: использовать медленную, но по сравнению с популистким ls'ом гораздо более адекватную команду getfacl. Есть ли варианты попроще?

★★★★★
Ответ на: комментарий от chicane

Не, stat ещё медленне, а у меня каталогов - тысячи.
Вот вариант с getfacl'ем (здесь получаем ОТНОС_ИМЯ_КАТАЛОГА====владелец====группа)

find ./ -type d -mindepth 1 | while read d; do echo "${d##./}====`getfacl \"$d\" | sed -nr 's%^.+owner: (.+)$%\1%p'`====`getfacl \"$d\" | sed -nr 's%^.+group: (.+)$%\1%p'`"; done

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

хм, а чем на практике отличается stat от того же ls? ведь в теории они вроде обращаются к одному системному вызову - stat?

chicane
()
Ответ на: комментарий от alex_custov

>$ stat -c %U .bashrc
alex

Большое Спасибо !!! :)
P.S. А я и не знал о сущестсвовании такой команды, хотя в Linux уже лет 5 как минимум :(

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

как это вяжется с "Не, stat ещё медленне,..." ? ну если вам так охото попарсить вывод команд, то сделайте stat dir/* :)

chicane
()
Ответ на: комментарий от DRVTiny

если все-равно find'ом обходишь дерево каталогов, то просто
man find на предмет опции -printf "%u"

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.