Rename files

My script
I wrote a Python program that took less than 24s for over 27500 files: https://github.com/jbsilva/renamer
It removes spaces and changes special characters recursively.
Renameutils
sudo pacman -S renameutils
Photos
exiftool -r -P \
-i '#recycle' \
-i '@eaDir' \
-i 'SYMLINKS' \
-i 'HIDDEN' \
-d '%Y%m%d_%H%M%S' \
'-filename<%f-${ImageSize}%-03c.%le' \
'-filename<${CreateDate}%-03c.%le' \
'-filename<${DateTimeOriginal}%-03c.%le' \
.
exiftool -r -P \
-i '#recycle' \
-i '@eaDir' \
-i 'SYMLINKS' \
-i 'HIDDEN' \
-d '%Y/%m' \
'-Directory<${CreateDate}' \
'-Directory<${DateTimeOriginal}' \
.
If the files are already in a folder:
find . \
-mindepth 1 -maxdepth 1 \
-type d \
-not \( -name '#recycle' -prune \) \
-not \( -name '@eaDir' -prune \) \
-print0 | xargs -0 -n1 \
exiftool -r -P -d '%Y%m%d_%H%M%S' \
'-filename<%f-${ImageSize}%-03c.%le' \
'-filename<${CreateDate}%-03c.%le' \
'-filename<${DateTimeOriginal}%-03c.%le' \
The folders #recycle and @eaDir are common in Synology NAS and should be ignored.
Aliases
Some useful aliases:
alias recc='rename -X -c --rews --camelcase --nows'
alias qmvv='qmv --format=dc --options=spaces,width=40,autowidth'
alias qmvo='qmv --format=destination-only'
alias qmvor='qmv -R --format=destination-only'
alias exif_move="exiftool -P -i '#recycle' -i '@eaDir' -i 'SYMLINKS' -i 'HIDDEN' -d '%Y/%m' '-Directory<${CreateDate}' '-Directory<${DateTimeOriginal}' ."
alias exif_rename="exiftool -P -i '#recycle' -i '@eaDir' -i 'SYMLINKS' -i 'HIDDEN' -d '%Y%m%d_%H%M%S' '-filename<%f-${ImageSize}%-03c.%le' '-filename<${CreateDate}%-03c.%le' '-filename<${DateTimeOriginal}%-03c.%le' ."

I’m a Brazilian computer engineer based in Germany, passionate about tech, science, photography, and languages.
I’ve been programming for about two decades already, exploring everything from mobile apps and web development to machine learning. These days I focus on cloud SRE and data engineering.
I volunteer in the open source and Python communities, helping organize PyCon DE and PyData Berlin, mentoring, and contributing with code and translations.
On my blog, I share Linux tips, setup guides, and personal notes I’ve written for future reference. I hope others find them helpful as well. The content is available in multiple languages.
Browse my gallery for some of my photography.
Away from the keyboard, you’ll find me at concerts, playing clarinet, cycling, scuba diving, or exploring new places, cultures, and cuisines.
Always happy to connect! 🙂