cpShuffleSature randomly copies files from one directory to another. It is designed for copying music, pictures, or films onto any hardware device (player) which serves as a filesystem (such as I-Bead, iPod, Archos...).

It will not delete nor modify existing files and is developed with portability in mind.

It runs on every system where a recent (5.8 is OK) version of Perl is installed. To use it with MS-Windows you need Perl (explore ActiveState).

cpShuffleSature can:

Licence: public domain
Author: Nat Makarevitch

Tested under Linux, please send your requests, bug reports or patches.

Examples and cookbook

Please read this to obtain a better grasp of the function and usage of this software: cpShuffleSature_demo.txt


cpShuffleSature (the script), last stable version (PGP-GPG signature)
cpShuffleSature (the script), last unstable version (PGP-GPG signature)
freshmeat, useful for subscribing to new releases


--destroy option, which deletes target files existing in the source dir (same size + compares the first, midd and last clusters contents (test adequation against std multimedia files?))

use it as a player, la randomplay
with a memory of songs played preserved across sessions, so you don't "lose your place" if you have to shut down. "mp3"s to "mpg123" "ogg"s to "ogg123" "mid"s to "timidity" "wav"s to "play" idea: test program existence

re-encode on the fly, while copying. for example OGG to MP3 or lower sampling speed

-vv must produce various stats

afin de ne copier que/pas les fichiers arborant un commentaire donné utiliser (sans qu'ils soient nécessaires) : MP3::Info libimage-info-perl libvorbis-perl ajouter option regexps pondérées des filenames et/ou tags (MP3 ...) augmentant ou diminuant la proba de sélection

multilingue (Locale::gettext), mais sans dépendre de ce module my $module_B_is_available; essayer avec libmodule-info-perl BEGIN { $module_B_is_available = eval { require B; B->import; 1 } or do_fixup_code_if_B_not_available(); };

GUI 'Perl Tk' (?) projette la sélection, offre moyen de sélectionner/déselect, enrichir les regexp de filtrage ...


Similar codes



You need Perl 5.8, Carp::Assert and Filesys::DiskFree


invoke 'apt-get install libcarp-assert-perl libfilesys-diskfree-perl'

Other distributions

Please let me know!



Stupid name choosen because it is somewhat clear for French and English speakers.

Arguments under Unix shells

Under Unix do NOT forget to quote the arguments otherwise interpreted by the shell.


Unix users: mount the filesystem exported by your USB device in 'sync' mode to somewhat reduce the probability of loss after any plug-out done before umounting. Under Linux the corresponding /etc/fstab entry may be:
/dev/sda1  /mnt/usb  vfat  defaults,user,noatime,noauto,sync  0 0