PDA

View Full Version : Shell scripting - copia dei file più recenti con "cp"


petitof
15-12-2006, 08:48
Ciao a tutti!

Avete idea di come si possa fare questo?
Per rendervi più chiare le idee..io ho una 40 di files e avrei l'esigenza di prendere i 5 (o quanti sono ) più recenti!
Secondo voi è fattibile in Linux?
Io credo si possa fare con il pipe e grep ma come?!!!!

:muro:

texerasmo
15-12-2006, 11:34
dovresti costruire un script

non ho ben chiaro quando dici ...prendere i 5 (o quanti sono ) più recenti

vedi tu quali tra queste opzioni ti è utile.

ls -
t ordina per data dall'ultimo al primo
u ordinato per data di ultimo accesso
c ordina secondo la data di creazione dei files
r inverte l'ordinamento di altre opzioni

se il cp non ha queste opzioni prova a farti prima un listato poi con un | grep fai il tuo cp oppure mv

kingv
15-12-2006, 13:34
devi prendere i 5 più recenti o tutti quelli più recenti di una certa data ?

petitof
15-12-2006, 15:10
i 6 più recenti! Ho risolto anche se non sono sicuro sia stata la strada più raffinata!!!


Hofatto così:

ls -t > elenco_all.txt
head -n 6 elenco_all.txt > elenco.txt

lettura del file all'interno del file con echo del nome concatenato, prima e dopo, alle operazioni che avevo in mente ossia copia e rinominazione!!

E' stata proprio una bella esperienza!!!

kingv
15-12-2006, 20:07
i 6 più recenti! Ho risolto anche se non sono sicuro sia stata la strada più raffinata!!!



ci sono strade più raffinate ma l'importante è che faccia quello che ti serve, e poi trovare la propria soluzione è più gustoso che copiaincollare qualche riga da internet ;)

Mason
15-12-2006, 22:43
ls -t|head -n 5|xargs -i echo {} ciaoo

quindi (non avevo letto che era una copia che volevi)
ls -t|head -n 5|xargs -i cp {} dest/


nel caso dovessi spostarli in una dir col comando mv

cmq xargs ti passa la stringa letta come parametri di un cmd

PS, non ho quasi manco provato se non per l'opzione -i, cercata in rete, magari prende i 5 piu vecchi

petitof
17-12-2006, 23:53
grazie ragazzi proverò immediatamente la nuova soluzione, ma effettivamente è stato divertende capirlo da solo!!!
:D