hjælp med at flytte filer - en smart kommando?
Hallo igen
Jeg har en masse forskellige mapper på mine diske, er der en måde - en smart kommandolinje - som kan gennemsøge mapperne og flytte evt mp3-filer over til en musikmappe?
Eller kan man ikke lave et script - lille bat-program som i de gode gamle dos dage til formålet?
Arne
Jeg har en masse forskellige mapper på mine diske, er der en måde - en smart kommandolinje - som kan gennemsøge mapperne og flytte evt mp3-filer over til en musikmappe?
Eller kan man ikke lave et script - lille bat-program som i de gode gamle dos dage til formålet?
Arne
Kommentarer5
Re: hjælp med at flytte filer - en smart kommando?
for i in
ls|grep mp3
do
tar -cvf - $i | (cd /ny/mappe; tar -xvf -)
done
EDIT Så lige du ville søge, så er det nok nærmere:
for i in
find / -name mp3
do
tar -cvf - $i | (cd /ny/mappe; tar -xvf -)
done
Re: hjælp med at flytte filer - en smart kommando?
find ! -wholename "*/*" -iname "*.mp3" -exec mv -v \{\} /. \;
skal erstattes med for eksempel / hvilket gør at du søger alt igennem. Måske har du kun brug for at søge i /home eller /home/. Ligeledes skal erstattes med den mappe du vil flytte musik filerne til.
F.eks.:
find /home/skou ! -wholename "/home/skou/mit-musik/*" -iname "*.mp3" -exec mv -v \{\} /home/skou/mit-musik/. \;
Hvis du ikke er helt sikker på at de skal flyttes kan du erstatte 'mv' med 'cp' så de bliver kopieret i stedet...
/Skou
Re: hjælp med at flytte filer - en smart kommando?
hvad gør "! -wholename" f.eks.?
og efter -exec har du \{\} hvad gør denne?
Og til sidst afslutter du med \; hvorfor?
Re: hjælp med at flytte filer - en smart kommando?
F.eks.:
/bar/foo
'-name' matcher kun på 'foo', hvor imod '-wholename' matcher på '/bar/foo'.
'!' negerer det efter følgende. F.eks.
find . ! -wholename "*test*"
finder alle filer der _ikke_ indeholde 'test'.
'-exec' bruges til at udfører en kommando når en fil matcher søge stregen. '{}' representere den fundne fil, og bliver erstattet med denne når kommandoen udføres. ';' fortæller 'find' at kommandoen slutter her.
I bash skal '{', '}' og ';' have en '\' foran for at blive fortolket rigtigt.
/Skou
Re: hjælp med at flytte filer - en smart kommando?