Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Sistemi operativi I
 
[esercizio shell]
Clicca QUI per vedere il messaggio nel forum
Elisabeth
Sono alle prese con questo esercizio:
trovare l'utente con il maggior numero di file sul sistema
che mi sembrava fattibilissimo ma mi sta mandando in crisi.

Io lo risolverei così:


NFILE=0
for USER in $(cut /etc/passwd -d : -f 1)
do
FILE=$(find / -type f -user $USER | wc -l)
if (($FILE > $NFILE))
then
NFILE=$FILE
NUSER=$USER
fi
done
echo "L'utente $USER ha il maggior numero di file sul sistema, pari a $NFILE"

Ma mi da errore..qualche idea su cosa c'è di sbagliato?

Cronovirus
Secondo me stai sbagliando sintassi nella condizione dell'if! guarda qui http://stackoverflow.com/questions/...thmetic-in-bash

Elisabeth
Lo pensavo anche io, però provando a testare solamente l'if con le ((..)) funzionava :(

Alla fine ho optato per questa soluzione:

NFILE=0
for USER in $(cut /etc/passwd -d : -f 1)
do
FILE=$(find / -type f -user $USER | wc -l)
if [ $FILE -gt $NFILE ]
then
NFILE=$FILE
NUSER=$USER
fi
done
echo "L'utente $USER ha il maggior numero di file sul sistema, pari a $NFILE"

Cronovirus
ma aspetta: che errore ti dava?

Elisabeth
aaa non mi ricordo purtroppo.
Ma va beh, ormai il laboratorio è andato :)

rogerino
mi sapete dire come si risolve questo esercizio:

copiare tutti i file da /usr/bin nella directory corrente cambiando l'estensione da .h a .bak??

giuscri
Originally posted by rogerino
mi sapete dire come si risolve questo esercizio:

copiare tutti i file da /usr/bin nella directory corrente cambiando l'estensione da .h a .bak??

Per i posteri, una possibile soluzione:
code:
cp -r /usr/bin /tmp/_bin; for FILENAME in $(find /tmp/_bin -type f|egrep "\.h$"); do mv $FILENAME $(echo $FILENAME|sed -r "s/\.h$/.bak/"); done; cp -r /tmp/_bin/* .

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate