Jak zkopirovat soubory starsi nez 120 dnu

Ivo Panacek ivop na jlabs.cz
Čtvrtek Listopad 4 11:58:31 CET 2004


Kovar Jan wrote:
> Dobry den.
> 
> Potrebuju nakopirovat strukturu souboru, ktere jsou starsi nez 120 dnu do
> adresare /data2/EEE/. Tak nejak jsem se dopracoval az sem:
> 
> find ./ -mtime -120 -exec cp -Rv {} /data2/EEE/ \;
> 
> Vysledkem je, ze v adresari /data2/EEE/ mi vytvori strukturu adresaru,
> nakopiruje tam soubory, ale zaroven je jeste soupne znovu vsechny primo do
> toho adresare /data2/EEE/. Co delam spatne? (SLES 7)

To asi takto jednoduse neudelate.
find jede rekurzivne => najde postupne vsechny souboury a adresare, ktere
se zmenily. A kazdy z nalezenych tam rekurzivne kopirujete =>

1) jde-li o adresar, tak ho tam zkopirujete rekurzivne, tj. udela se tam podstruktura
    ale nasledne find POKRACUJE a prohleda i ten adresar, takze se tam jeho obsah sotane taky
2) jde-li o soubor, zkopiruje ho tam primo

Potrebujete tedy neco jako (neladil jsem, pisu z hlavy => specialne ty dva prikazy v -exec nevim):

find . -type f -mtime -120 -exec ( mkdir -p /data2/EEE/`dirname "{}"` 2>/dev/null ; cp -av "{}" /data2/EEE/`dirname "{}"` ) \;

coz je osklive a resil bych to spis find ... | while read FILE; do ...

-- 
S pozdravem
Ivo Panáček


Další informace o konferenci Linux