Gå til innhold

flytte filer eldre enn en viss dato


Anbefalte innlegg

Skrevet

hei,

 

jeg prøver finne et script som flytter filer eldre enn en gitt dato. feks alle filer eldre enn 2 mndr skal flyttes til et annet sted, noen som har peiling på hvordan dette kan gjøres?

Videoannonse
Annonse
Skrevet

Er ingen kløpper med skript, men dette virker vel hvertfall:

#!/bin/bash
for FILE in `find $1 -type f -ctime +60`;
do
mv "$FILE" "$2"
done

 

Filer eldre enn 60 dager flyttes fra katalogen $1 (og underkataloger), til katalogen $2...

Skrevet

takker, får ikke testet før i ettermiddag, men lurte på om kanskje dette her ville fungerere også:

find <current_dir> -type f -ctime +60 -exec mv {} <new_dir>\;

{} skal bli erstattet med filnavnet?

\ er for å avslutte -exec

Skrevet
takker, får ikke testet før i ettermiddag, men lurte på om kanskje dette her ville fungerere også:

find <current_dir> -type f -ctime +60 -exec mv {} <new_dir>\;

{} skal bli erstattet med filnavnet?

\ er for å avslutte -exec

Burde funke det... {} blir erstattet med filnavnet ja

Skrevet

find <current_dir> -type f -ctime +60 -exec mv {} <new_dir>\;

denne bare flytter filene, men tar ikke med mappene om det er mapper der.. men flytter over filene i alle undermapper, hjelp? :)

Skrevet

find <current_dir> -type f -ctime +60 -exec mv {} <new_dir>/{}\;

Men du får sannsynligvis et problem med den, med at filer flyttes til mapper som ikke eksisterer.

Skrevet

find * -ctime +60 -exec mv {} <dir2>/{} \;

denne funker nesten... jeg må nå stå i riktig path når kommandoen kjøres, og alt ser riktig ut.. jeg trenger bare et linje til som lager alle mappene først, noen tips?

hmm...

 

find * -ctime +60 -type d -exec mkdir <dir2>/{} \;
etterfulgt av:
find * -ctime +60 -exec mv {} <dir2>/{} \;

dette burde jo gå som smurt... :)

Skrevet

eller ikke... dette ble feil dette også, nå lager den først ny mappestruktur under den nye lokasjonen, men når alt skal flyttes så blir feks det slik:

<gammeldir>/jabba/jubbu.html

<nydir>/jabba/jabba/jubbu.html

 

jeg er nær, nå må jeg eta frokost. kom gjerne med flere innspill her!

Skrevet

fant ut av det:

her er et "script" som går gjennom og flytter alle mapper som er modifisert for mer enn 60 dager siden:

find * -mtime +60 -type d -exec mv {} <ny_mappe>{} \;

så kommer linjen som flytter alle filer, det er viktig at man flytter mappene først, ellers flytter du over alle filene fra og med der du er og fra alle sub directories over i den nye mappen og mappestrukturen er da ødelagt i <ny_mappe>

find * -mtime +60 -type f -exec mv {} <ny_mappe>/{} \;

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...