2011-09-07 11 views
13

¿Hay alguna forma de obtener solo el propietario y el grupo del archivo, separados por espacio en el shell de Unix?Buscar el propietario de un archivo en Unix

Estoy tratando de escribir un script para encontrar al propietario de todos los archivos en un directorio e imprimirlo (en un formato específico, no puedo usar ls -la).

Respuesta

18
ls -l | awk '{print $3, $4 }' 

que va a hacer que

+0

Lo que es '-tr' aquí? – sanmai

+0

Puede agregar | ordenar | uniq si solo desea los distintos usuarios/grupos en lugar de una lista larga con el duplicado – CPJ

+0

el truco solo se me salieron de los dedos por costumbre, lo ordena por tiempo, al revés – CPJ

1
ls -l | cut -f3,4 -d" " | tail -n +2 
2

hallazgo GNU tiene la opción -printf que hacer esto para usted:

# if you want just the files in the directory, no recursion 
find "$dir" -maxdepth 1 -type f -printf "%u %g\n" 

# if you want all the files from here down 
find "$dir" -type f -printf "%u %g\n" 

# if you need the filename as well for disambiguation, stick a %f in there 
find "$dir" -maxdepth 1 -type f -printf "%u %g %f\n" 

Otros sistemas podrían tener esto como gfind.

10

utilizar el comando stat, si está disponible en su versión de UNIX:

$ stat -c "%U %G" /etc/passwd 
    root root 

o, para hacer esta operación para todos los archivos en un directorio y imprima el nombre de cada archivo también:

$ stat -c "%n %U %G" * 
1

Pruebe también el comando stat:

stat -c% ficheros U

Cuestiones relacionadas