Visualizzare data di ultima modifica

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: Visualizzare data di ultima modifica

Messaggio da conraid »

Se devi paragonare due soluzioni, perlomeno usa lo stesso metodo. Perché un comando lo lanci e l'altro usi echo con $()?

Codice: Seleziona tutto

$ time ls -l --time-style=+%Y%m%d prova | awk '{print $6}'
20081231

real    0m0.128s
user    0m0.006s
sys     0m0.015s

$ time date --date="$(stat -c %y prova)" +%Y%m%d
20081231

real    0m0.048s
user    0m0.004s
sys     0m0.009s
Se invece gli usi in uno script per assegnarli ad una variabile, *entrambi* devi farli precedere da qualche iterazione e da $() o da ``, ed in questo caso con $() posso annidare comandi. Quindi diventano

Codice: Seleziona tutto

DATEFILE=$(ls -l --time-style=+%Y%m%d $NOMEFILE | awk '{print $6}')
DATEFILE=$(date --date="$(stat -c %y $NOMEFILE )" +%Y%m%d)
Era solo questo che volevo segnalare.

Poi sul metodo uno sceglie quello che preferisce, ed io stesso ho detto che quello che ho indicato va bene solamente in un particolare contesto e non è portabile, quindi peggiore di altri.

p.s.
Mario Vanoni ha scritto: time echo "$(date --date="$(stat -c %y un_file_name" +%Y%m%d)"
time /bin/echo "$(date --date="$(stat -c %y un_file_name" +%Y%m%d)"
inoltre queste righe danno errore, se correggo

Codice: Seleziona tutto

$ time echo "$(date --date="$(stat -c %y prova)" +%Y%m%d)"
20081231

real    0m0.031s
user    0m0.007s
sys     0m0.009s
blank@slack:/tmp$ time ls -l --time-style=+%Y%m%d prova | awk '{print $6}'
20081231

real    0m0.042s
user    0m0.007s
sys     0m0.010s
ma mi sembra di parlare del sesso degli angeli sinceramente, anche perché ho risultati troppo diversi da una invocazione all'altra

Codice: Seleziona tutto

$ time ls -l --time-style=+%Y%m%d prova | awk '{print $6}'
20081231

real    0m0.031s
user    0m0.008s
sys     0m0.008s
$ time ls -l --time-style=+%Y%m%d prova | awk '{print $6}'
20081231

real    0m0.043s
user    0m0.006s
sys     0m0.007s
$ time ls -l --time-style=+%Y%m%d prova | awk '{print $6}'
20081231

real    0m0.035s
user    0m0.008s
sys     0m0.009s

$ time ls -l --time-style=+%Y%m%d prova | awk '{print $6}'

real    0m0.046s
user    0m0.017s
sys     0m0.011s

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: Visualizzare data di ultima modifica

Messaggio da Mario Vanoni »

conraid ha scritto:Se devi paragonare due soluzioni, perlomeno usa lo stesso metodo. Perché un comando lo lanci e l'altro usi echo con $()?

Codice: Seleziona tutto

$ time ls -l --time-style=+%Y%m%d prova | awk '{print $6}'
20081231

real    0m0.128s
user    0m0.006s
sys     0m0.015s

$ time date --date="$(stat -c %y prova)" +%Y%m%d
20081231

real    0m0.048s
user    0m0.004s
sys     0m0.009s
Errore mio.

I miei tempi per i due esempi sopra citati,
con una Core 2 Duo 6320 1866MHz 4GB RAM
sono _identitici_, la prima volta 0m009s,
le dieci successive sempre 0m0.008s.

ls + awk con 15 files 0m0.009s, con 2800 0m0.385s

date + stat non accetta piu` di un argomento

Grazie e Buon Anno
Mario

Avatar utente
anycolouryoulike
Packager
Packager
Messaggi: 1158
Iscritto il: ven 10 ago 2007, 0:00
Slackware: 12.2
Kernel: 2.6.34.8
Desktop: KDE 3.5.10

Re: Visualizzare data di ultima modifica

Messaggio da anycolouryoulike »

Grazie ancora, e buon anno!

Rispondi