-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
El ls -l muestra los sig datos:
los permisos del archivo, el n�mero de� enlaces�que� tiene,� el� nombre�del���
propietario,� el� del� grupo al que pertenece, el tama�o (en bytes), una
marca de tiempo, y el nombre�del� archivo.
De forma� predeterminada,�la marca de tiempo que se muestra es la de la
�ltima modificaci�n.
Al parecer, lo que sucede es culpa del ls, el cual pertenece al paquete
fileutils por lo que busque los fuentes del paquete para ver como estaba el
archivo ls.c. Mis conocimientos de C son b�sicos, as� que perdonen si meto la
pata ; ))
Hab�a dicho antes que toma el tiempo de modificaci�n por defecto para mostrar
o time_mtime. Si nos fijamos en los fuentes hay una comparaci�n que se hace
para ver que tiempo pone.
Cando se ejecuta el ls -l hay un case tendr�a que setear a 1 a la variable
full_time en caso de que se ponga el indicador --full-time.
Dado que con ls -l esto no ocurre, tomara el camino del false.
Hay un if que lo eval�a para determinar la forma de mostrar el tiempo:
if (full_time)
long_time_format[0] = long_time_format[1] =
dcgettext (NULL, "%a %b %d %H:%M:%S %Y", LC_TIME);
else
{
long_time_format[0] = dcgettext (NULL, "%b %e %Y, LC_TIME);
long_time_format[1] = dcgettext (NULL, "%b %e %H:%M", LC_TIME);
}
Al setear esta forma, luego hace una comparaci�n del tiempo, para ver si el
archivo tiene un tiempo de modificaci�n reciente o no.
Esto lo hace haciendo una peque�a cuenta que se fija si es menor a 6 meses
con lo que sabe que es reciente.
La cantidad de segundos en un a�o se calcula con el calendario Gregoriano que
es 365.2425 * 24 * 60 *60 = 31556952 segundos.
El tiempo actual es tomado desde los segundos que pasaron desde 1970 hasta el
tiempo marcado en el mtime.
static time_t current_time = TYPE_MINIMUM (time_t);
static int current_time_ns = -1;
Entonces veamos algunas cuentas las cuales se hacen empleando la sig
estructura.
six_months_ago = current_time - 31556952 / 2;
recent = (six_months_ago <= when && (when < current_time
|| (when == current_time && when_ns <= current_time_ns)));
fmt = long_time_format[recent];
Al comparar, cuando paso un minuto la variable recent se pone en 0, antes de
ese minuto se seteo en 1
Recordemos que:
long_time_format[0] = dcgettext (NULL, "%b %e %Y, LC_TIME);
long_time_format[1] = dcgettext (NULL, "%b %e %H:%M", LC_TIME);
Por lo que parece, despues de haber puesto toda esta chorrada, no ha sabido
el ls si el archivo tine mas o menos de 6 meses, por lo cual ha puesto mal la
variable long_time_format que es la que indica como se mostrara en el comando
ls -l el tiempo definido en mtime, que es el usado por defecto.
Resta para Uds un peque�o ejercicio que no he podido hacer por falta de
tiempo y es determinar dado los datos del mail de Alejandro si al pasar un
minuto despues de las 12:00 del 2 de Enero de 2002, la comparaci�n para ver
si es mas viejo que 6 meses se esta seteando mal.
Espero que se entienda ; ))
Si, ya se, me lime ; ))
Saludos.-
El Thursday 03 January 2002 10:38, Alejandro Gomez Fernandez escribi�:
> Esto que les muestro es lo que yo llamo �raro�:
>
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020099_316_2736.txt
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020104_316_2741.txt
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020103_316_2740.txt
> -rw-r--r-- 1 102 101 1156 ene 2 11:59 pallet_200201020102_316_2739.txt
> -rw-r--r-- 1 102 101 1156 ene 2 12:00 pallet_200201020105_317_2742.txt
> -rw-r--r-- 1 102 101 1169 ene 2 2002 pallet_200201020106_318_2743.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020109_319_2746.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020108_319_2745.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020107_319_2744.txt
> -rw-r--r-- 1 102 101 1153 ene 2 2002 pallet_200201020110_319_2747.txt
>
> Lo notan? Para verlo van a necesitar un programa de correo que soporte
> html...
> Para aquellos que no lo tengan al ver este mail, les cuento que
> normalmente, despues de la fecha (mes y dia) aparece la hora de la ultima
> modificacion del archivo en cuestion. (En este caso tambien es la fecha
> de creacion). Ahora, Si se fijan, en los ultimos 5 archivos de esta
> muestra, la hora �magicamente� se transformo en el a�o!!!! Estos archivos
> se crearon el mismo dia, en orden consecutivo dado por la secuencia de
> los digitos que continuan a la palabra pallet_20020102xxxx .
> Lo de los numeros 102 y 101 son los el usuario y grupo del servidor
> original y que no existen en mi equipo...
>
> Alguna idea?
>
> Gracias!!!
>
>
> Alejandro.
- --
- --
Sebasti�n D. Criado - [EMAIL PROTECTED]
L.U.G.R.o - http://www.lugro.org.ar
Linux Registered User # 146768
- -------------------------------------------------------------------
"Si el Universo fuera un programa estar�a hecho en C, y correr�a sobre
un sistema UNIX"
An�nimo.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE8NHlJ8hmHQ8ZCg0IRAimeAJ9PEjqfo/cnSmIXCqU6WR4PDyH12QCgqGnb
vMa9RlHv2eTCFzFU3ks7pIY=
=cVwn
-----END PGP SIGNATURE-----