Portál AbcLinuxu, 10. května 2025 04:09
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.