# randfile: Program for picking a random file

[ bsd3, program, system ] [ Propose Tags ]

This program selects a random file from the current directory, including files in subdirectories. If you like to manage your music collection using the command line, this program can be used to approximate "shuffle".

More precisely, it starts at the current directory, picks a random entry, and descends if it is a directory. It does not give more weight to directories containing more files. It should only fail if there are no regular files under the current directory that you can see.

If you are wondering why I bothered to use crypto-grade random number generation, it is because I found System.Random to be unsatisfactory. With System.Random, this program tended to return the same file repeatedly.

Note: on Unix, this program follows symbolic links, while on Windows, it doesn't. Symbolic links were introduced in Windows Vista and Windows Server 2008.