2012-08-10 14 views
12

¿Cómo encontrar la metainformación de un archivo en BASH? Y cómo extraerlo e imprimirlo por separado Usar los comandos de cortar y grepcómo encontrar la metainformación de un archivo usando BASH

+1

¿Qué es 'El Meta-información'? ¿Y qué has intentado? –

+1

Lo he encontrado Es "ls -l" Información sobre un archivo .. Me gusta Nombre de archivo, permiso, propietario del archivo, fecha, etc. – Andy

+11

Por favor, deje de usar mayúsculas cada palabra, hace que su publicación sea más difícil de leer. – derobert

Respuesta

2

Estoy adivinando aquí, pero ¿ha probado el comando file? Tratará de identificar qué tipo de archivo es.

+0

En realidad, Mi salida debe ser así: Nombre del archivo: Tipo de archivo: propietario del archivo: Permiso de archivo: Tamaño de archivo: He utilizado ls -l Para buscar la metainformación de un archivo. Necesito extraerlo e imprimirlo como arriba. – Andy

+2

@meandyxtreme Eche un vistazo al comando 'cut' que es muy bueno para elegir valores de las columnas. Y, por favor, deténganse con la frase "Mayúscula al comienzo de cada palabra". Hace que sea muy difícil de leer. – HonkyTonk

+0

Disculpa por la capitalización de cada palabra. Mira lo que escribí [[email protected] lab]$ ls -l lab2.txt -rw-rw-r-- 1 ur10cs164 ur10cs164 801 Jul 19 16:40 lab2.txt por lo que la línea anterior muestra toda la información meta. así que ahora cómo extraerlos por separado. He intentado 'cortar'. Tal vez el formato que he escrito puede ser incorrecto. Déjame saber el método correcto para extraerlo – Andy

13

En lugar de analizar la salida de ls usando cut/grep, sólo debe utilizar stat que toma un argumento -c para especificar el formato de salida.

[email protected]:~$ stat -c '%n : %A : %U : %s' afiedt.buf .XCompose 
afiedt.buf : -rw-r--r-- : anthony : 178 
.XCompose : lrwxrwxrwx : anthony : 38 

Puede cambiar el formato de salida como lo desee; compruebe el stat(1) manpage para más detalles.

+0

Gracias. Especialmente la página de manual. gracias de nuevo – Andy

2

Ejecutar stat -l en el archivo:

[~]$ stat -l test.py 
-rw-r--r-- 1 burhan staff 84 Aug 3 01:08:34 2012 test.py 

para almacenar esta información en una variable:

[~]$ foo=$(stat -l test.py) 
[~]$ echo $foo 
-rw-r--r-- 1 burhan staff 84 Aug 3 01:08:34 2012 test.py 

para obtener información específica solamente man stat y comprobar los especificadores de formato.

Cuestiones relacionadas