traccia
Transcript
traccia
Lab. di Sistemi Operativi, Gruppo I: M. Faella Anno Acc. 2006-2007 Esame del 25 luglio 2007 Università di Napoli Federico II Nome e Cognome: Matricola: 1 2 /32 3 /30 tot /38 /100 1. 32 punti Si supponga che l'output tipico del comando ls -l sia: -rw-------rw-r--r--rw-r--r--rw-r--r--rw-r----- 2 1 1 4 1 utente1 utente1 utente2 utente3 utente2 staff staff users staff users 4096 102 3145 4096 268 2007-02-10 2007-01-11 2007-01-16 2006-08-28 2007-04-26 14:28 02:05 01:48 19:29 10:37 doc1.pdf doc2.pdf rel.tex 02-U2-Zooropa-Babyface.mp3 03-U2-Zooropa-Numb.mp3 1 Si scriva un comando di shell UNIX per ciascuno dei seguenti compiti : (a) (6 punti) Elencare soltanto i nomi dei le che sono stati modicati nel 2007. (b) (6 punti) Elencare soltanto i nomi di tutti i le regolari che non sono leggibili dagli altri utenti. (c) (8 punti) Contare la lunghezza complessiva di tutti i nomi dei le. Supponendo che la directory corrente contenga esattamente i le mostrati sopra, si determini l'output dei seguenti comandi: (d) (6 punti) (e) (6 punti) ls | grep -v "[[:digit:]]" | sed 's/\.//' ls -l | awk '$5 > 1000 { print $8 }' | sed 's/\..*/.big/' 2. 30 punti Si consideri che in una directory ci siano dei le nominati: XX-nome_artista-nome_album-titolo_traccia.mp3 Ovvero, il nome contiene 4 campi delimitati dal simbolo -: il primo campo XX è il numero di traccia della canzone, il secondo campo è il nome del cantante, il terzo campo il nome dell'album da cui è tratta la canzone e il quarto campo è il titolo della canzone. I campi non possono contenere il carattere -. Si realizzi uno script che crei una directory per ogni cantante e, all'interno di queste, una directory per ogni album. Inne, sposti ciascun le nella directory appropriata, rinominando il le in: XX-titolo_traccia.mp3 3. 38 punti Usando soltanto le system call di I/O di basso livello, si implementi un programma reverse che prende come argomenti due nomi di le e scrive nel secondo le il contenuto del primo, rovesciando il contenuto di ogni riga. Se il primo le non esiste, oppure se il secondo le esiste già, il programma deve terminare con un errore. Ad esempio, se il le pippo contiene il testo: Sempre caro mi fu il comando reverse pippo pippo2 crea il le pippo2 e vi scrive il testo: orac erpmeS uf im 1 Per comando, si intende qualunque istruzione impartita al prompt della shell, che non contenga strutture di controllo, uso di variabili, o l'operatore ;.