Renaming a bunch of files using Command-line
Suppose I have a folder with thousands of photos named all randomly. How can one rename them as photo1, photo2,...,photo1000 from the command-line/terminal?
I will assume that you want to keep a proper suffix on the filenames:
c=1; for f in *.jpg ; do mv "$f" "photo$c.jpg" ; c=$(($c+1)) ; done
Notes
c=1
: This initalizes the counter. You can set it to any number you like.for f in *.jpg ; do
: This signifies the beginning of a shellfor
-loop. While much of shell-scripting can be difficult to make work when file names can contain spaces, newlines or other difficult characters, this construction is safe against even the most hostile file names.mv "$f" "photo$c.jpg"
: This uses the counterc
and does the actual renaming of files. The file name$f
is in double-quotes to protect the name from the various possible shell expansions.c=$(($c+1))
: This increments the counter for the next loopdone
: The signifies the end of thefor
loop.
You can use this code :
for i in *.jpg; do let j+=1 ; mv "$i" "photo$j.jpg" ; done