3

Есть ли команда для вывода владельца файла, и больше ничего? Я полагаю, я мог бы использовать ls и запустить его через sed , но если есть лучший способ, я бы определенно использовал его.

2 ответа2

6
stat -c %U file.txt

ls - инструмент для интерактивного просмотра информации о файлах. Его вывод отформатирован для людей и будет вызывать ошибки в скриптах. Используйте globs или find вместо этого. Понять почему: http://mywiki.wooledge.org/ParsingLs

1

Я бы использовал эту функцию:

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .