Есть ли команда для вывода владельца файла, и больше ничего? Я полагаю, я мог бы использовать 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. _ -
с дополнительным ограничением для дефиса не быть первым символом.
Я предполагал, что места не было. Как и все, что не переносимо, это может привести к неожиданным результатам не только с моей маленькой функцией, но и со многими утилитами Unix/Linux CLI.