PDA

View Full Version : [generale] comandi unix


misterx
31-07-2009, 12:12
sinceramente non sapevo dove postare per chiedere lumi sulla sintassi e sul significato dei comandi unix ed essendo la shell più vicina ad un ambiente di programmazione ho optato per questo forum, dunque

Facendo esercitazione e leggendo i vari manuali mi sonon posto il problema di determinare quale fosse il file più recente in tutto il sistema ed ho trovato diverse soluzioni.

Mi chiedevo però come mai una chiamata del genere no sortisce l'effetto desiderato

ls -l -t -r -R che dovrebbe mostrare il contenuto dell'intero disco riordinando l'output per data

A mio avviso ciò avviene ma solo a livello della medesima directory esempio:
ho la directory A e la directory B, col comando sopra mi viene mostrato prima il contenuto di A ordinato per data decrescente e poi quello di B; ero convinto invece che venisse messo tutto insieme.

Allora ho provato con:

find / -type f | xargs ls -l -t -r

e non funziona ma non me ne spiego il motivo

così invece

find / -type f -mtime -1 | xargs ls -l -t -r

"sembra" funzionare molto bene, che ne pensate voi ?


grazie 1000 e buone vacanze

misterx
31-07-2009, 16:11
riflettendoci su un pochino ed essendo digiuno di unix, mi è parso di capire che il segreto della pipe è costruire un output che risulti compatibile con l'input del comndo che si intende usare: :stordita:

misterx
01-08-2009, 06:27
non piace più a nessuno il buon vecchio unix ? :D

misterx
06-08-2009, 10:59
mi illuminate sulla Command Substitution ?

malocchio
06-08-2009, 11:11
mi illuminate sulla Command Substitution ?

Ti illumina google: http://tldp.org/LDP/abs/html/commandsub.html

misterx
06-08-2009, 11:36
Ti illumina google: http://tldp.org/LDP/abs/html/commandsub.html

non sempre purtroppo!
Preferirei parole dette da qualcuno che ha usato tale caratteristica ed in quale occasione.

Ho trovato tanti esempi di questo tipo
/bin/ls -l $(/usr/bin/wich sort)
ma non si riesce a coglierne l'essenza: non so se mi spiego :)

La cosa sopra ad esempio, la puoi scrivere anche come
whick sort | xargs ls -l
e si ottiene il medesimo risultato.

Nel caso sopra $(...) sembrerebbe che si stia assegnando a ls -l il valore di ritorno di una funzione come input di ls, nel secono invece entra in ballo una pipe: ma sostanzialmente non si ha alcuna differenza sul risultato fimale.

misterx
06-08-2009, 14:07
ok, credo a aver capito che la command sobstitution serve a redirigere l'output di un comando su una variabile allo scopo, ad esempio, di effettuare dei cicli