shell script - Como gerar o dono de um arquivo

3

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.

    
por BenjiWiebe 20.12.2012 / 21:22

2 respostas

6
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

    
por 20.12.2012 / 21:48
1

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.

    
por 20.12.2012 / 21:31