Сценарий оболочки - Как вывести владельца файла
Есть ли команда для вывода владельца файла, и больше ничего? Я полагаю, я мог бы использовать ls
и прогнать его через sed
, но если есть лучший способ, я бы определенно использовал его.
2 ответа
stat -c %U file.txt
ls
это инструмент для интерактивного просмотра информации о файле. Его вывод отформатирован для людей и будет вызывать ошибки в скриптах. использование globs
или же find
вместо. Понять почему: http://mywiki.wooledge.org/ParsingLs
Я бы использовал эту функцию:
lso() { ls -dl ${1:?usage: lso file} | awk '{print $3;exit}'; }
Редактировать:
Я думал о
stat
но я стараюсь по возможности избегать использования чего-либо нестандартного. Я придерживался чего-то портативного (например, POSIX), так как ваш вопрос помечен как linux и unix, а не просто linux, с которымstat
вполне стандартно..Поскольку этот вопрос вызвал дискуссию о допустимых именах пользователей, они также определены стандартом Unix как строка, состоящая исключительно из символов из этого списка:
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ
АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЭЮЯ
0 1 2 3 4 5 6 7 8 9 . _ -
с дополнительным ограничением для дефиса не быть первым символом.
Я предполагал, что места не было. Как и все, что не переносимо, это может привести к неожиданным результатам не только с моей маленькой функцией, но и со многими утилитами CLI Unix / Linux.