Вы находитесь на странице: 1из 1

ISO - Grupo 2

Octubre 2016
Ejercicios Sesin 6:
1. Se pide encontrar una orden de una sola lnea (slo con tuberas, sin bucles ni condicionales) que nos permita extraer el mayor
nmero de todos los nmeros naturales que se encuentren en la salida de la orden ls -l. No debern salir ceros a la izquierda ni
se tendrn en cuenta smbolos diferentes de los numricos, incluyendo signos.
2. Parece ser que un hacker ha entrado al sistema y nos piden que obtengamos informacin sobre los ficheros que pudieran haber sido
afectados. Para ello nos solicitan que hagamos un guin shell que reciba como parmetros un nmero de das, dos tiempos en el
formato HH:MM y una lista de directorios. Suponga que las horas se proporcionan en formato correcto y siempre con dos dgitos
tanto la hora como los minutos, por tanto no hay que comprobar la correccin de los parmetros.
Deber devolver una lista ordenada de los usuarios que estn ejecutando algn proceso en el sistema. A continuacin de cada
nombre de usuario, aparecer la lista de ficheros regulares que, estando dentro de los directorios proporcionados, pertenezcan a dicho
usuario, con la condicin de que se hayan modificado dentro del nmero de das indicado, y cuyo tiempo de modificacin sea mayor
estrictamente que el primer tiempo y menor estrictamente que el segundo. Deber mostrar una salida como la del ejemplo, donde tras
cada usuario aparezca una lista con el da, mes y hora de modificacin y el nombre de cada fichero, ordenada por la fecha y hora.
Ayuda: Investiga el argumento " %T" de -printf en la orden find. Dos horas se pueden comparar lexicogrficamente (es decir,
como si fueran cadenas) si todos los campos (horas, minutos y segundos) tienen el mismo nmero dgitos, por ejemplo 08:05:05. En
el caso de las fechas pasa lo mismo, siempre que se escriban en el formato ao/mes/da, por ejemplo, 2015/08/30.
Ejemplo de ejecucin: Si suponemos que los usuarios que estn ejecutando algo actualmente son root, jose y antonio, para
cada uno de ellos se mostrar la lista de los ficheros que les pertenecen en dir1, dir2 y dir3 que hayan sido modificados hace
menos (estrictamente) de 4 das y entre las 18:00 y las 19:30.
En el momento de la ejecucin estamos a da 23 de octubre. Si algn usuario no tiene ningn fichero, aparecer slo su nombre.
# ./entre2tiempos 3 18:00 19:30 dir1 dir2 dir3
Usuario antonio:
21/10 18:09 dir1/fichero1
21/10 19:16 dir3/fichero3
23/10 18:46 dir3/fichero2
Usuario root:
Usuario jose:
21/10 18:41 dir2/fich3
21/10 18:42 dir1/fich2
22/10 18:43 dir3/fich1
3. Programe una nueva orden llamada desordena.sh que dado un fichero como parmetro, compruebe que el fichero existe y es
regular, y genere una versin del mismo con las lneas desordenadas aleatoriamente. NOTA: No se puede utilizar la orden sort y la
variable $RANDOM devuelve un valor aleatorio entre 0 y 32767.
Por ejemplo, si el fichero de texto se llamara rimas y contuviera:
Aqui la envida y mentira
me tuvieron encerrado.
Dichoso el humilde estado
del sabio que se retira
de aqueste mundo malvado.
La salida podra ser (aunque al ser aleatoria cada vez tiene que ser diferente):
me tuvieron encerrado.
del sabio que se retira
Aqu la envidia y mentira
de aqueste mundo malvado.
Dichoso el humilde estado
Si lo llamamos con errores:
$ ./desordena.sh noexisto.txt
USO ./desordena.sh fichero_de_texto

Вам также может понравиться