Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: mario 03. 04. 2017, 11:36:57
-
Dobry den
Potreboval by som pomoct zo shell scriptom. V linuxe mam zlozku1 vnej sa nachadza (priklad) 1000 jpg obrazkov 20 nahodnych obrazkov potrebujem presunut do zlozky2 ale v zlozke1 sa tychto 20nahodnych obrazkov zmaze cize ich tam bude uz len 980. Vedeli by ste mi niekto poradit ?
Dakujem
Pekny den :)
-
#!/bin/bash
IMAGES=./data
MOVETO=./data2
HOWMUCH=3
for counter in $(seq 1 $HOWMUCH); do
FILESCOUNT=$(ls $IMAGES -1 | wc -l)
if [ $FILESCOUNT -gt 0 ]; then
FILETOMOVE=$(ls $IMAGES -1 | tail -n +$(( $RANDOM % FILESCOUNT )) | head -n 1)
mv $IMAGES/$FILETOMOVE $MOVETO
fi
done
třeba tak...
IMAGES - kde jsou obrázky
MOVETO - kam je přesunout
HOWMUCH - kolik jich přesunout
-
Možná by bylo lepší ještě přepsat
MOVETO=./data2
na
MOVETO=./data2/
protože kdyby adresář data2 neexistoval, ochotně to několikrát můvne do souboru data2 a výsledkem bude několik smazaných souborů a jeden přesunutý do souboru data2.
-
#!/bin/bash
IMAGES=./data
MOVETO=./data2
HOWMUCH=3
for counter in $(seq 1 $HOWMUCH); do
FILESCOUNT=$(ls $IMAGES -1 | wc -l)
if [ $FILESCOUNT -gt 0 ]; then
FILETOMOVE=$(ls $IMAGES -1 | tail -n +$(( $RANDOM % FILESCOUNT )) | head -n 1)
mv $IMAGES/$FILETOMOVE $MOVETO
fi
done
třeba tak...
IMAGES - kde jsou obrázky
MOVETO - kam je přesunout
HOWMUCH - kolik jich přesunout
Velmi pekne dakujem funguje :) ;)
-
proc tak slozite :)
for a in `ls -A /source/ | sort -R | head -n 20`; do
mv /source/$a /dest/$a
done;