Celeb Glow
general | March 18, 2026

How to batch rename files (.jpg) randomly?

Ok, so I have a digital photo frame that I have, and view my photos from a USB. Everything works fine, however, there is no way to display the pictures randomly. So, I have to watch my pictures in order, which is fine but not really what I want.

I am wondering if there is a way to have my .jpg pictures, that I view to be batch renamed, but renamed randomly? Be it adding random characters to the start of the name or replacing the characters before .jpg

Thank you for your time and answers.

3 Answers

I suppose the following could work. Assuming the prefix of your filenames is "DSC" you can use the following command in the terminal (untested!)

cd /path/to/photos
rename 's/DSC/'$RANDOM'/' *.jpg

This uses the perl rename command to match regular expressions and replace them. In this case, we are substituting "DSC" with a random number in the filename for all .jpg files. Change the "DSC" to whatever your photos' prefix is.

another method (also untested) is with a bash script:

#!/bin/bash
for f in *.jpg; do mv "$f" $RANDOM-"$f"
done
3

Following one line script works for file names with white chars.

for f in *.jpg; do mv -n "$f" "${f/*/$RANDOM.jpg}"; done
2
#!/bin/bash
for img in *.jpg; do
newname=$(head /dev/urandom | tr -dc a-z0-9 | head -c 8)
mv "$img" "$newname".jpg
done

This will shuffle all jpg files to random names.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy