stat -c %U file.txt
ls
é uma ferramenta para observar interativamente as informações do arquivo. Sua saída é formatada para humanos e causará bugs em scripts. Use globs
ou find
em vez . Entenda o porquê: link
Existe um comando para gerar o dono de um arquivo e nada mais? Eu suponho que eu poderia usar ls
e executá-lo através de sed
, mas se houver uma maneira melhor, eu definitivamente o usaria.
stat -c %U file.txt
ls
é uma ferramenta para observar interativamente as informações do arquivo. Sua saída é formatada para humanos e causará bugs em scripts. Use globs
ou find
em vez . Entenda o porquê: link
Eu usaria essa função:
lso() { ls -dl ${1:?usage: lso file} | awk '{print $3;exit}'; }
Editar:
Eu pensei em stat
, mas tento evitar usar nada que não seja padrão quando possível. Eu fiquei com algo portátil (ou seja, POSIX) como sua pergunta é marcada linux e unix, não apenas o Linux com o qual stat
é bastante padrão ..
Como esta questão desencadeou uma discussão sobre nomes de usuários válidos, estes também são definidos por um padrão Unix como uma string composta exclusivamente de caracteres da lista:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -
com a restrição adicional para o hífen não ser o primeiro caractere.
Eu assumi que nenhum espaço era permitido. Assim como qualquer outra coisa que não seja portátil, isso pode levar a resultados inesperados não apenas com minha pequena função, mas com muitos utilitários Unix / Linux CLI.
Tags ownership linux unix shell-script