![]() |
Pages (4): « 1 2 3 [4] Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Esame di laboratorio (Giugno 2007) - Domande (http://www.dsy.it/forum/showthread.php?threadid=31182)
Originally posted by mark
ne approfitto per dire la mia anche se in ritardo di due anni
find / -type f -perm +111
trova tutti e solo i file che hanno il bit di esecuzione settato
find / -type f -perm -111
trova tutti i file che hanno il bit di esecuzione settato indifferentemente dagli altri bit rw
in definitiva col segno + vengono ricercati --x--x--x mentre col -qualsiasi configurazione va bene, basta che siano settati i parametri x
alcolare per ogni utente lo spazio occupato sul sitema
code:
# ut=$(cat /etc/passwd | cut -d : -f 1); for i in $ut; do find / -type f -user $i -exec ls -l {} \; | awk '{somma += $5} END {print somma}'; done
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Originally posted by Spr1gg4N
scusa mi potresti spiegare un secondo l'utilizzo di -perm? cioè, ho capito che controlla i permessi ma perchè proprio 111 per il bit di esecuzione? e se per esempio volessi trovare i file che NON hanno il bit di esecuzione settato?
thx ^^
code:
r w x --- r w x --- r w x 4 2 1 --- 4 2 1 --- 4 2 1
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Ciao, siete risucita risolvere questo:
"Verifcare qual'e il valore di ritorno di una pipe, anche in caso
che qualcuno dei "filtri" fallisca"
ciaooooooooooooooooooooooooooo
__________________
a me viene in mente solo echo $? (by Martignoni)
0 = tutto bene
!= 0 problemi di qualche natura
ciao
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
ma in questo caso funziona solo sull'ultimo comando credo... o no?
__________________
eh si
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Originally posted by mark
alcolare per ogni utente lo spazio occupato sul sitema
code:
# ut=$(cat /etc/passwd | cut -d : -f 1); for i in $ut; do find / -type f -user $i -exec ls -l {} \; | awk '{somma += $5} END {print somma}'; done
in pagina 2 ?
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Originally posted by mark
in pagina 2 ?
dopo aver letto 31 pagine di post in 2 giorni, solo una cosa non mi è chiara, e visto che mi conosco, sicuro mi capita quell'esercizio di shell:
copiare un ramo mantenendo inalterati i permessi, qual è la soluzione definitiva? cp -p /alb1/* /alb2 ???
Originally posted by MarcoVigna17
dopo aver letto 31 pagine di post in 2 giorni, solo una cosa non mi è chiara, e visto che mi conosco, sicuro mi capita quell'esercizio di shell:
copiare un ramo mantenendo inalterati i permessi, qual è la soluzione definitiva? cp -p /alb1/* /alb2 ???
code:
cp -p /dir_origine/* /dir_destinazione
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
e per copiare la struttura ma nn i file l'unica soluzione senza impazzire in script allucinanti è copiare tutto e poi eliminare i file nell'albero creato?
Originally posted by MarcoVigna17
e per copiare la struttura ma nn i file l'unica soluzione senza impazzire in script allucinanti è copiare tutto e poi eliminare i file nell'albero creato?
code:
#/bin/sh cpdir -p /directoryA /directoryB for file in $(find /directoryB -type f); do rm $file done
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
grazie...non sono scaramantico, ma venerdì mi dovrò toccare tanto le palle mentre mi dà l'esercizio della shell ho idea
nessun suggerimento per l'esercizio del kernel? (tasto F8)
dai Marco non essere così pessimista speriamo solo che ci siano esercizi abbordabili! poi comunque i comandi son sempre quelli.
Una cosa invece che mi lascia un attimo perplesso è tale differenza:
Cercare il file con dimensione maggiore:
code:
find / -type f | xargs ls -s | sort -nr | head -1
code:
find / -type f | xargs du | sort -nr | head -1
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
Originally posted by Spr1gg4N
nessun suggerimento per l'esercizio del kernel? (tasto F8)
controlla di aver fatto giusta la punteggiatura. a me molti errori di compilazione erano su quello.
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
l'ho scritto correttamente....a te funziona?
Vi segnalo una cosa, di cui forse si era già parlato in precedenza.
Considerando questo script per trovare tutti i file con dimensione dispari
code:
#!/bin/sh find / -type f | xargs ls -l | tr -s “ “ “ “ | while read FILE; do NOME=$(echo $FILE | cut –d “ “ -f 9) DIM=$(echo $FILE | cut –d “ “ -f 5) tmp=$(expr $DIM % 2) if [ $tmp -ne 0 ] ; then echo "$NOME -> $DIM" fi done exit 0
__________________
Eidolon64|Blog
mi pare strano che funzioni....secondo me la condizione dell'if non è corretta:
dovresti mettere $tmp (e non solo tmp) per prendere il valore; per sicurezza poi scrivi "$tmp" così nel caso in cui la variabile tmp sia vuota non dovrebbe dare errore
Originally posted by Spr1gg4N
mi pare strano che funzioni....secondo me la condizione dell'if non è corretta:
dovresti mettere $tmp (e non solo tmp) per prendere il valore; per sicurezza poi scrivi "$tmp" così nel caso in cui la variabile tmp sia vuota non dovrebbe dare errore
__________________
Eidolon64|Blog
Originally posted by Shaper
Scusa, ho sbagliato io a trascrivere!
Adesso edito il post
Originally posted by Spr1gg4N
ah nello script hai scritto $tmp? mmmm allora potrebbe essere un problema![]()
__________________
Eidolon64|Blog
Originally posted by xSharKMaNx
dai Marco non essere così pessimistasperiamo solo che ci siano esercizi abbordabili! poi comunque i comandi son sempre quelli.
Una cosa invece che mi lascia un attimo perplesso è tale differenza:
Cercare il file con dimensione maggiore:
code:
find / -type f | xargs ls -s | sort -nr | head -1
code:
find / -type f | xargs du | sort -nr | head -1
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Originally posted by MarcoVigna17
e per copiare la struttura ma nn i file l'unica soluzione senza impazzire in script allucinanti è copiare tutto e poi eliminare i file nell'albero creato?
__________________
io faccio così ma solo perchè mi sembra più chiaro
code:
#!/bin/sh dirA=$1 dirB=$2 find /dirA -type d | sort > miatmp while read l do mkdir -p /dirB/$l done < miatmp rm miatmp
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Originally posted by Shaper
code:
#!/bin/sh find / -type f | xargs ls -l | tr -s “ “ “ “ | while read FILE; do NOME=$(echo $FILE | cut –d “ “ -f 9) DIM=$(echo $FILE | cut –d “ “ -f 5) tmp=$(expr $DIM % 2) if [ $tmp -ne 0 ] ; then echo "$NOME -> $DIM" fi done exit 0
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
Originally posted by xSharKMaNx
prova a dimensionare DIM prima della find: DIM=0
oppure prova a mettere le doppie apici "$DIM"
Ciao
code:
find / -type f -exec ls -l {} \; | awk '{$5 % 2}{print}'
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Trovare tutti i file modificati di venerdi'??
qualcuno è capace di risolverlo??
per la partizione, ho letto da qualche parte che bisogna far attenzione al campo CYL, ma sinceramente nn ci ho capito molto in base a cosa...qualcuno sa come fare?
for ITEM in $( find $1 -type f ); do
DATAMOD=$( echo $ITEM | xargs stat -Mtime | tr -s ' ' ' ' | cut -d ' ' -f 1)
if test $DATAMOD = "Fri" ; then
echo $ITEM
fi
done
A me è venuto in mente così..se trovate di meglio
ciao
__________________
Originally posted by MarcoVigna17
per la partizione, ho letto da qualche parte che bisogna far attenzione al campo CYL, ma sinceramente nn ci ho capito molto in base a cosa...qualcuno sa come fare?
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
ma voi per le partizioni metterete i valori in KB esattemente o moltiplicate solo per 1000?
altrimenti ho bisogno della calcolatrice... ahah possiamo usare quella del pc?
__________________
ultima domanda poi giuro che la smetto:
se chiede di usare un archivio tar.gz, come devo fare? so usare .tar e .ar, ma con .gz non so niente e il manuale non è che mi abbia aiutato poi molto
Originally posted by ociofe
Trovare tutti i file modificati di venerdi'??
qualcuno è capace di risolverlo??
code:
#!/bin/sh find / -type f | while read line do Giorno=$(stat -Mtime $line |awk '{$1 print $1}') if [ "$Giorno" = "Fri" ]; then ls -l $line fi done
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
@Marco: Per la partizione leggi il primo messaggio di questo 3D:
http://www.dsy.it/forum/showthread....&threadid=30276
@Kirka: Da quello che ho letto in questo 3D che tu inserisca la dim. corretta o che tu moltipli x 1000 credo non cambia differenza
@Marco:
code:
1.Creare archivi # tar -cvf nome_archivio.tar nome_cartella_da_comprimere 2.Estrarre archivi # tar -xvf archivio.tar 3.Elencare il contenuto ( … senza estrarre i file dell’archivio ) # tar -tf archivio.tar Questo è il significato delle opzioni usate c: crea un archivio f: specifica un file da estrarre o da creare x: estrae un archivio t: permette di mostrare il contenuto degli archivi v: dà in output maggiori informazioni sui file
code:
1.Comprimere archivi con gzip (.tgz o tar.gz) # tar -czvf nome_archivio.tgz nome_cartella_da_archiviare 2.Comprimere archivi con bzip2 (.tar.bz2) # tar -cjvf nome_archivio.bz2 nome_cartella_da_archiviare 3.Decomprimere archivi creati con gzip (.tgz o tar.gz) # tar -xvfz ./nome_archivio.tgz 4.Decomprimere archivi creati con bzip2 (.tar.bz2) # tar -xjvf ./nome_archivio.tar.bz2 5.Listare il contenuto degli archivi compressi # tar -ztf nome_archivio.tar.gz
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
il comando dovrebbe essere proprio gzip
es.
ls | gzip -cv > archivio.gz
__________________
La stringa:
code:
grep too long - truncated
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
bella domanda
__________________
Originally posted by xSharKMaNx
La stringa:
code:
grep too long - truncated
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
Originally posted by mark
Direi che è ora di riposarsi per affrontare domani con lucidità
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
Originally posted by xSharKMaNx
Pienament d'accordo!
Ragazzi, ci si vede domani in Comelico
__________________
Eidolon64|Blog
[QUOTE]Originally posted by Shaper
In bocca al lupo a tutti quanti e, comunque vada, grazie a tutti quelli che hanno tenuto vivo questo thread! [/QUOTE
e ovviamente...........CREPI!!! ]
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
crepi il lupo, a domani
__________________
andata: 24
Grazie a tutti ed in bocca al lupo a chi dovrà farlo
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
ringrazio anche io per tutti i vari suggerimenti trovati qua e là.
In bocca al lupo a chi lo deve ancora dare
__________________
Non ti perdere di coraggio se ti tocca lavorare molto e raccogliere poco.....
mi accodo anche io ai ringraziamenti: è andata bene anche grazie al dsy ^_^
esame passato!!!! Un Grazie di cuore a tutti voi!!! Senza questo thread molto probabilmente il laboratorio non lo avrei mai passato!!!!!! Grazie!!!!
c'è qualche anima pia che ha una racccolta degli esercizi di shell risolti?
28....... una sudata pazzesca,ma soprattutto per la parte orale....
allora,per quanto riguarda gli esercizi di lab:
1-script: trovare tutti i file che cominciano per 'l',archiviarli in un archivio ar e comprimere il tutto utilizzando gzip
2-kernel: modificare la modalità di allocazione della memoria da first fit a best fit
1-codice(a memoria,quindi testatelo!!):
find / -type f -name "l*" | xargs ar cr archivio.ar
gzip -9 archivio.ar
con il -9 si sta dicendo a gzip di comprimere il file piu che puo anche se ci mette piu tempo (se si utilizzasse -1 invece si dice a gzip di compattare il file nel minor tempo possibile,ma la compressione non è ottimale, il -5 ovviamente è una via di mezzo)
2- sono andato in usr/src/servers/pm/alloc.c
sono andato nella funzione alloc_mem e ho fatto un for e 2 if in modo da selezionare lo spazio opportuno....non credo proprio che avrebbe funzionato,ma come ragionamento c'ero.....non potevo testarlo per evitare di combinare danni....cmq al prof è bastato e quindi mi ha dato 27...
per quanto ri guarda il thread,ringrazio tutti coloro che hanno posto quesiti e soluzioni.senza tutti questi esercizi non sarei mai riuscito a passare questo esame!!!!!
in bocca al lupo a tutti quanti!!!!!!
__________________
Passato anch'io gente!
Ovviamente grazie a tutti voi, senza questo thread non ce l'avrei mai fatta.
Come es di shell mi ha chiesto di contare tutti i file che hanno il nome composto da un numero dispari di lettere.
Non era molto difficile: basta usare wc con l'opzione -c. Il prof quando mi ha dato l'esercizio mi ha detto di considerare solo il nome del file e non il path. Io non sapevo come farlo, dal momento che il find restituisce il path e al momento non sapevo come estrarre l'ultimo elemento con cut, ma alla fine non mi ha detto nulla e gli è andato bene così.
Per il kernel dovevo stampare un messaggio ogni volta che veniva creato un file il cui nome iniza per x. La syscall da modificare è in /usr/src/servers/fs/open.c (do_creat, credo), ma più in là non sono riuscito ad arrivare...
In totale 26.
Monga è molto bravo: è gentile e ti mette a tuo agio e ti da una mano se vede che sai dove mettere le mani..
L'unica cosa è l'organizzazione! Sono arrivato lì alle 9:30 e sono uscito alle 15:30
Ma è tanto difficile dividere preventivamente in turni, dato che gli iscritti li conoscono già? Che ci vuole a far venire metà gente alle 9:30 e metà, metti dopo mezzogiorno??
Oltretutto nell'aula gamma, che è una specie di squallidissimo bunker anti-atomico, senza finestre e senza nemmeno posto per sedersi. 6 ore in piedi non fanno certo bene alla concentrazione pre-esame!
Vabbè, è andato e questo è l'importante, ancora grazie a tutti (anche a n3o, che in pratica ho visto che ha fatto "nascere" questo thread!)
__________________
Eidolon64|Blog
il culo di cui parlavo ieri c'è stato...
es di shell:sommare la grandezza dei file che iniziano per 'v'
kernel:modifica del kernel per stampare un messaggio alla pressione di F8...totale 30 e verbalizzato un 29 (e a quello prima aveva regalato un punticino per arrivare al 30 ma va beh, mi va benissimo lo stesso)
cmq esame lungo si, anche perchè c'era solo monga, però lui è bravo e ti aiuta (nei limiti del possibile ovviamente)
e anche per questo esame, grazie 1000 dsy!!!
Originally posted by MarcoVigna17
(e a quello prima aveva regalato un punticino per arrivare al 30 ma va beh, mi va benissimo lo stesso)
grazie a tutti quelli che hanno collaborato a questo thread !
__________________
Originally posted by Dazan
c'è qualche anima pia che ha una racccolta degli esercizi di shell risolti?
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
Originally posted by xSharKMaNx
Lunedì mattina posto nella Sezione Filez![]()
chi mi risolve questo esercizio?
calcolare la somma dei pid
Originally posted by Dazan
chi mi risolve questo esercizio?
calcolare la somma dei pid
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
ottimo.. awk che comando è?
Originally posted by Dazan
ottimo.. awk che comando è?
code:
ps -alx | tr -s ' ' ' ' | cut -d ' ' -f 4 | while read line; do tmp=$(expr $tmp + $line) done | echo $tmp
code:
'awk {print $3}
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
grazie mille !!!
Non so se è perchè era l'ultimo appello prima del nuovo corso, in cui forse qualcosa cambierà soprattutto proprio in laboratorio, però i professori sono davvero ma davvero molto disponibili. Basta dimostrare che le cose si sanno all'inizio.....poi ti aiutano in tutto e per tutto.
Non so con certezza il nome del ragazzo che sta con Monga (è un ricercatore?)...è molto che non guardavo sistemi operativi....ma dopo che gli ho mostrato subito un piccolo script corretto sintattitacamente, siamo andati avanti più di mezzora a fare prove su prove per farlo andare, anche lui non capiva perchè, ma voleva farlo andare.
Alla fine era perchè usavo la bash e non la shell...................................
Mi ha fatto passare in ogni caso.
__________________
Is it Defeat or Victory that Waits in the Dark?
I need to be myself
I can't be no one else
I'm feeling supersonic
Give me gin and tonic
You can have it all but how much do you want it?
You make me laugh
Give me your autograph
Can I ride with you in your B.M.W ?
You can sail with me in my yellow submarine
scusate raga in questo esercizio : Trovare l'utente col minor numero di file nel sistema
io ho fatto in questo modo:
#! /bin/sh
indice=0
listaCut=$(cut -f 3 -d : /etc/passwd)
for USER in $listaCut; do
cont[$[{indice}]=0
listaFind=$(find / -user "${USER}" -type -f)
indiceTemp=0
for FILE in listaFind; do
cont[${indice}]=$(expr ${indiceTemp} + 1)
done
cat /etc/passwd | grep "$USER"
echo "--------"
echo "$cont[${indice}]"
indice=$(expr ${indice} + 1)
done
L'ordinamento me lo volevo tenere per dopo, volevo vedere prima se funzionava
Ma l'output di minix è:
cont[0]=0: no such file or directory
./primo.sh: Out of space
Dove ho sbagliato?
credo che il problema sia questo:
listaFind=$(find / -user "${USER}" -type -f)
l'interprete cerca di scrivere tutti i file come:
listaFind=f1 f2 f3 f4..... f4097 --> overflow
perchè i parametri hanno un limite.
dovresti provare con il costrutto "find / | while read f; do ...$x... done;
__________________
My 3D blog: http://www.webgl.it
qualcuno riesce a risolvere questo esercizio ke è capitato ieri all'esame:
"trovare tutti i file modificati di venerdi' e fare la somma delle occupazioni"
sul dsy c'era un esercizio simile in cui chiedeva di trovare i soli file modificati di venerdi' (tra l'altro la soluzione proposta su questo forum non funzionava....) ma non si parlava di trovare poi la dimensione dei vari file...qualcuno riesce a risolverlo?
qualcuno riesce a risolvere questo esercizio ke è capitato ieri all'esame:
"trovare tutti i file modificati di venerdi' e fare la somma delle loro occupazioni"
sul dsy c'era un esercizio simile in cui chiedeva di trovare i soli file modificati di venerdi' (tra l'altro la soluzione proposta su questo forum non funzionava....) ma non si parlava di trovare poi la dimensione dei vari file...qualcuno riesce a risolverlo?
Buttata giù di fretta, ma dovrebbe essere corretta:
PHP:
find / -type f | (while read f; do
if stat -Mtime $f | grep -s "^Fri"; then
size=$(stat -size $f)
n=$(expr $n + $size)
fi
done; echo $n)
__________________
And all those moments will be lost in time, like tears in rain...
ok ho capito il concetto, ma state attenti perchè la soluzione proposta prima non funziona e neanche alcune altri esercizi vanno e fidatevi ma basta poco per essere segati all'esame...
ma quindi quello dell'f8 come si risolve? ho aggiunto una voce nella tabella in dmp.c, ho aggiunto una funzione, l'ho aggiunta nei define ma non funge. cos'altro devo dirgli e sopratutto, come cazzo faccio a cercare in una serie di testi una parola? io facico uno script con find grep e cat ma è scomodissimo... non c'è altro modo?
Salve gente, ho un problema con il ciclo while.
CI sto sbattendo la testa da 3 giorni e magari è una stupidata.
Quando ho un codice di questo tipo
PHP:
#!/bin/sh
pippo="topolino"
cat file.txt | while read I
do
pippo = "cane"
echo $pippo
done
echo $pippo
__________________
Annunci Gratis : La nuova dimensione degli annuci online - Jabbi.it
Originally posted by -Oblivion-
In pratica (testato e ritestato) tutte le variabile utilizzate nel ciclo while, non vanno a sovrascrivere quelle fuori dal ciclo! E' assurdo.
Questo invece non avviene nei cicli for. Perchpè? Avete riscontrato anche voi?
PHP:
#!/bin/sh
pippo="topolino"
cat file.txt | (while read I
do
pippo = "cane"
echo $pippo
done
echo $pippo)
__________________
And all those moments will be lost in time, like tears in rain...
Ti ringrazio!! Mi hai risolto 3 giorni di scleri....
Solo per curiosità... come facevi a saperlo?
edit: Se ho 2 while di questo tipo, annidati.
Come posso portare fuori una variabile del while interno?
ES:
comando | while
do
comando | while
do
pippo="Ciao"
done
done
echo $pippo
__________________
Annunci Gratis : La nuova dimensione degli annuci online - Jabbi.it
Originally posted by -Oblivion-
Solo per curiosità... come facevi a saperlo?
edit: Se ho 2 while di questo tipo, annidati.
Come posso portare fuori una variabile del while interno?
e poi la recuperi con cat o tail -n 1 al max se hai già usato quel file. Altrimenti potresti giocare un po' con gli echo e le pipe.PHP:
echo $pippo >> temp
__________________
And all those moments will be lost in time, like tears in rain...
ma io son l'unico che usa
a=$(comando)
for i in $a
do
done
???
io lo trovo molto più comodo del while in pipe, anche se dopo che ho imparato awk, non lo uso quasi più.
A usare for non mi fido perchè sui pc dell'uni è facile che vada in "Out of Space" .
Adesso do un occhio a awk
__________________
Annunci Gratis : La nuova dimensione degli annuci online - Jabbi.it
ciao, vorrei capire cos'è di preciso awk, capendo come si usa si potrebero sostituire i cicli for e while? qualcuno saprebbe dirmi se c'è un manuale o qualcosa su cui ha imparato ad utilizzarlo?? grazie
Originally posted by uLori
ciao, vorrei capire cos'è di preciso awk, capendo come si usa si potrebero sostituire i cicli for e while? qualcuno saprebbe dirmi se c'è un manuale o qualcosa su cui ha imparato ad utilizzarlo?? grazie
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
qualcuno potrebbe spiegarmi la sintassi del while? perchè fin ora ho usato il for però in laboratorio spesso va in out of space e il prof lo calcola come errore...quindi devo impararmi il while per forza..solo che non c'è niente su cui studiare stò benedetto minx!!!!
Originally posted by uLori
qualcuno potrebbe spiegarmi la sintassi del while? perchè fin ora ho usato il for però in laboratorio spesso va in out of space e il prof lo calcola come errore...quindi devo impararmi il while per forza..solo che non c'è niente su cui studiare stò benedetto minx!!!!
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
ciao, il problema è che ho notato che gli esercizi che il prof assegna in laboratorio sono via via sempre più difficili. i primi di qualche anno fà si risolvono con una sola riga di codice, poi via via sempre più complicati e gli ultimi sono tosti... io è da giugno che ho passato l'orale di sisop ma ora sono bloccato da questo benedetto minix per la conclusione dell esame..
per esempio l'ultimo che mi ha dato è: Trovare l'occupazione di tutti i file modificati di lunedì.
il mio problema è che con il for andava in out of space
Originally posted by uLori
ciao, il problema è che ho notato che gli esercizi che il prof assegna in laboratorio sono via via sempre più difficili. i primi di qualche anno fà si risolvono con una sola riga di codice, poi via via sempre più complicati e gli ultimi sono tosti... io è da giugno che ho passato l'orale di sisop ma ora sono bloccato da questo benedetto minix per la conclusione dell esame..
per esempio l'ultimo che mi ha dato è: Trovare l'occupazione di tutti i file modificati di lunedì.
il mio problema è che con il for andava in out of space![]()
code:
Trovare tutti i file modificati di venerdi' (sia un venerdi' particolare che di venerdi' in generale) #/usr/bin/sh find / -type f|while read line; do ; stat $line |awk '{if ($1 =="Mtime:" && $2 =="Fri") print "'${line}'" }' ; done;
code:
- Trovare tutti i file modificati di venerdì #!/bin/sh find / -type f |while read line do giorno=$(stat -Mtime $line |awk '{$1 print $1}') if [ "$giorno" = "Fri" ]; then ls -l $line fi done
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
un altra cosa che mi era stata chiesta: contare quanti link simbolici ci sono che hanno un numero di caratteri pari nel nome.
per trovare i link simbolici penso si usi ls -F (che mette @ in fondo al nome di quelli che sono i link simbolici) e poi farei grep "@$"
mentre per contare i caratteri del nome penso si usi wc -c
però non sò, aspetto i vostri saggi consigli
Originally posted by uLori
un altra cosa che mi era stata chiesta: contare quanti link simbolici ci sono che hanno un numero di caratteri pari nel nome.
per trovare i link simbolici penso si usi ls -F (che mette @ in fondo al nome di quelli che sono i link simbolici) e poi farei grep "*@"
mentre per contare i caratteri del nome penso si usi wc -c
però non sò, aspetto i vostri saggi consigli![]()
code:
Trovare tutti i link simbolici presenti nel sistema. find / | while read line;do if test -h $line; then echo $line ok; fi; done
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
dopo giorni intensi di prove..continuo a non capire come si calcola il numero di caratteri del nome di un file..
per esempio contare i file che hanno un numero di caratteri pari nel nome
scusate per le 1000 domande
raga scusate, ma non capisco dove questo codice trovi i link simbolici, l'esercizio cheideva Trovare tutti i link simbolici presenti nel sistema. e questo è la soluzione:
find / | while read line;do
if test -h $line; then
echo $line ok
fi
done
se qualcuno riesce a spiegarmelo...è l'unico modo per trovare i link simbolici??
Originally posted by uLori
raga scusate, ma non capisco dove questo codice trovi i link simbolici, l'esercizio cheideva Trovare tutti i link simbolici presenti nel sistema. e questo è la soluzione:
find / | while read line;do
if test -h $line; then
echo $line ok
fi
done
se qualcuno riesce a spiegarmelo...è l'unico modo per trovare i link simbolici??
code:
1. find / -type f | xargs ls -lF | tr -s ' ' ' ' | cut -d ' ' -f 5,9 2. find / -type f | xargs ls -lF | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | grep "\*$"
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
facendo grep "\*$" restituisce i file flaggati come eseguibili...io avevo letto che era da fare il grep "\@$" per far restituire i file segnati con la @ che sono i link simbolici....solo che non esce nulla...
Originally posted by uLori
facendo grep "\*$" restituisce i file flaggati come eseguibili...io avevo letto che era da fare il grep "\@$" per far restituire i file segnati con la @ che sono i link simbolici....solo che non esce nulla...
code:
find / -type l | xargs ls -lF | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | grep "\@$"
__________________
Perché, mentre il manganello può sostituire il dialogo, le parole non perderanno mai il loro potere; perché esse sono il mezzo per giungere al significato, e per coloro che vorranno ascoltare, all'affermazione della verità. E la verità è che c'è qualcosa di terribilmente marcio in questo paese. (V)
I popoli non dovrebbero aver paura dei propri governi, sono i governi che dovrebbero aver paura dei popoli. (T.J)
es. Come faccio a contare quanti file di manuale ci sono nel file system?
in realta' la domanda è, per cercare i file di manuale basta cercare i file in /usr/man ?
grazie.
era la domanda di un esercizio di monga?? aspetto anche io la soluzione
si, e' una domanda di monga.
io farei così :
find /usr/man -type f | xargs wc -l
tu non hai nessuna idea?
a proposito dei file link il grep con "\@$" mi va in errore!
ciao, allora stavo facendo prove anche io e pure a me è venuto da fare find /usr/man -type f | xargs wc -l
però teoricamente questo ci restituisce le linee contenute in ogni file...non la quantita di file della cartella...
per i trovari i link simbolici i metodi sono 2:
1- find / -type l
2- find / -type f | xargs ls -F | grep "\@$"
a me facendo questi 2 comandi esce lo stesso risultato..che è un file solo: /var/log
ciao,
grazie per i file simbolici.
io mi incasinavo con tr e non veniva fuori nulla!
per il resto boh.. io domani ho la prova di laboratorio quindi... speriamo in una domanda facile.
già pure io ci sarò domani, speriamo!! a te che link simbolici escono??
quella di contare i file in una cartella proprio non saprei come fare..
io ho appena provato ma con:
find / -type l ho:
/usr/local/bin/slogin
/usr/local/bin/screen
/usr/local/man/cat1/slogin.1
/home/symlnfile2
/var/log
con :
find / -type f | xargs ls -lF | grep "\@$"
il sistema si impalla completamente, nn mi da nemmeno il prompt #
... rimani in linea che vedo come fare l'latro e ti scrivo.
ciao
allora usiamo find / -type l comunque fare ls -F mette alla fine delle directory \ alla fine degli eseguibili * e alla fine dei link simbolici @
così infatti se devi cercare gli eseguibili fai ls -F | grep "\*$"
su internet ho trovato il modo anche se contorto e mai visto prima, di contare i file dentro una cartella:
find /usr/man | ls -l . | egrep -c '^-'
cavoli contorto davvero..
hai provato a farlo?
ti da lo stesso rislutato di find /usr/man -type f | xargs wc -l ?
nono fare wc -l restituisce per ogni file della cartella la quantità di linee..invece l'altro funzione..restituisce un numero solo che è la quantità di file della cartella...
un altro esercizio che non sono mai riuscito a fare è: trovare tutti i file che hanno il nome composto da numero di caratteri pari.
uLori, scusa ma mi si sta fondendo quel poco di cervello che mi rimane e non che ne avessi tanto...
ci provo e se scopro qualcosa ti scrivo.
ciao
una domanda tecnica...
mi dite dove e' il laboratorio della prova di domani?
comelico...di fronte alla segreteria dall altra parte del cortile scendi c'è la porta aperta appena entrato nell edificio...sembre di scendere in uno scantinato
chi ha fatto oggi la prova di laboratorio e' cosi' gentile da postare le domande.
passato finalmente!
la mia era: trovare l'occupazione di memoria totale dei processi con pid dispari
complimenti!
hai finito tutto l'esame?
sisi finito tutto
comunque a me è stato dato un esercizio relativamente semplice, ho sentito esercizi di altri che non avrei saputo nemmeno da dove iniziare
sommare la dimensione dei file .c contenenti numero di parole dispari
dimenticavo l'intestazione, questo è l'esercizio che mi è capitato, ringrazio tutti per questo thread, grazie a voi l'ho passato!!!
Aggiungo la mia domanda di stamattina:
Contare quanti file di manuale (file cioè con estensione .1, .2, .3 ... .7) ci sono all'interno del File System.
code:
find / -type f -name '*.[1-7]'
__________________
"Amor, ch’a nullo amato amar perdona, mi prese del costui piacer sì forte che, come vedi, ancor non m’abbandona."
*Dante*
Il mio esercizio era:
trovare l'occupazione di memoria totale dei processi con pid dispari.
code:
ps -axl | awk '{if (($4%2) != 0) SUM+=$7} END {print SUM}'
Penso che senza questo 3d non avrei ai passato l'esame di laboratorio! Per futura memoria posto l'esercizio che mi è stato dato:
Shell Script
Trovare l'occupazione totale dei file che sono stati modificati l'ultima volta di venerdi.
#!/bin/sh
SOMMA=0
SIZE=0
find / -type f | while read line; do
Day=$(stat -Mtime $line | cut -f 1)
if [ $Day = "Fri" ]; then
SIZE=$(echo $line | xargs du | cut -f 1)
SOMMA=$(expr $SOMMA + $SIZE)
fi
done
echo "Occupazione totale: $SOMMA"
Kernel
Fare in modo che ogni volta che viene creato un link simbolico venga stampato il nome del link.
Non sono riuscito a farlo, comunque la strada giusta è accedere al file system , e all'interno del file open.c andare a modifizare la funzione do_slink. Monga mi ha dato un punto per la buona volontà Totale 25!
Grazie ancora a tutti!
Anche io posto l'esercizio che mi ha fatto fare.
Trovare il numero dei file che contengono la parola "copyright" e hanno il nome composto da un numero pari di caratteri
io ho fatto così:
#! /bin/sh
sum=0;
for file in $(find / -type f | xargs grep -l "copyright" | rev | cut -d / -f 1 | rev); do
numero=$(echo "$file" | wc -c )
if (expr $(expr $numero % 2) -eq 0); then
sum=expr($sum + 1)
fi
done
echo "numero file: $sum"
Originally posted by basslele
Anche io posto l'esercizio che mi ha fatto fare.
Trovare il numero dei file che contengono la parola "copyright" e hanno il nome composto da un numero pari di caratteri
io ho fatto così:
#! /bin/sh
sum=0;
for file in $(find / -type f | xargs grep -l "copyright" | rev | cut -d / -f 1 | rev); do
numero=$(echo "$file" | wc -c )
if (expr $(expr $numero % 2) -eq 0); then
sum=expr($sum + 1)
fi
done
echo "numero file: $sum"
Anche a me aveva dato questo tipo di problema prima dell'esame ma durante l'esame avevo ridotto la ricerca e Monga non mi ha detto nulla...
Cmq è molto disponibile e ti aiuta.
Originally posted by spriggan
kernerl -> stampare, quando viene lanciato un processo che necessita privilegi superiori, un messaggio a video con pi, uid, nome processo.
Ringrazio tutti, senza questo post non sarei riuscito ad accendere manco minix.
Posto l'esercizio che mi è capitato.
-trovare la dimensione totale dei file .c e .h che contengono contemporaneamente le parole "include" e "define".
Grazie davvero a tutti :-))))
Necroposting in un necroforum.
Trovare la dimensione totale dei file .c e .h che contengono contemporaneamente le parole "include" e "define".
code:
COUNTER=0; for SIZE in $(find lab/ -type f 2> /dev/null |egrep "(\.c)|(\.h)$"|xargs egrep -l "include"|xargs egrep -l "define"|xargs du -b|sed -r "s/\s+/ /g"|cut -d " " -f 1); do COUNTER=$(( $COUNTER + $SIZE )); done; echo $COUNTER
Trovare il file piu' grande appartenente ad un certo utente.
code:
#!/usr/bin/sh # No user name provided ... _f(){ >&2 echo "[largestfilefor] No user provided."; exit 1; }; [[ -z $1 ]] && _f; # Else, ... USER=$1; FILES=$(find / -type f -user $USER 2> /dev/null); if [[ -z $FILES ]]; then >&2 echo "[largestfilefor] Found no file for the user $USER."; exit 1; fi; echo $(echo $FILES|xargs stat --format="%s %n" 2> /dev/null|sort -nr|head -n 1|cut -d " " -f 2);
Trovare il numero di link simbolici nel sistema.
code:
find / -type l 2> /dev/null|wc- l
trovare tutti i file che cominciano per 'l',archiviarli in un archivio ar e comprimere il tutto utilizzando gzip
code:
find / -type f 2> /dev/null|egrep "^.*/l[^/]*$"|xargs tar -czf useless.archive.tar.gz
All times are GMT. The time now is 05:28. | Pages (4): « 1 2 3 [4] Show all 571 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.