Portál AbcLinuxu, 29. prosince 2025 11:40
podcasti=4;
ted=1;
for i in /x/y/*; do
mv $i nekam/$ted/
ted=$(( $ted + 1 ));
[ "$ted" -gt "$podcasti" ] && ted=1;
done
Pokud by se ty adresáři měly jmenovat nějak zvláštně, tak třeba:
kam="/neco/prvni/:/kamsi/jinam/:..."; ... mv $i `echo "$kam" | cut -f $ted '-d:'`; ...
find -print0 -type f /xx/yy > filelist
pak bych to rozdelil na 4, tady bych asi nebyl elegantni :(,
momentalne volim reseni +-od oka rucne
a potom
cat filelist.part1 | xargs -0 mv '{}' /novy/cast1
...
Netestovano, ale melo by to bezet i s mezerami.
Tohle nebude fungovat, kdyz budou v nazvech souboru mezery.
Jasně - ale řekl bych, že by stačilo pohrát si trochu s $IFS a místo wildcardů použít `find ...`.
Ty mezery jsem neřešil, protože většinou podobný věci provádím jenom nad svými soubory a tam žádné speciální znaky nepoužívám (a kacířsky dodávám, že IMHO by se název souboru měl vejít do ^[a-zA-Z0-9_-.]*$).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.