#!/bin/bash # # chname - recursively correct file names # lowercases, despaces find -depth -print0 | while read -d $'\0' filename; do dirname="${filename%/*}" filename="${filename##*/}" newfilename="$(echo "${filename}" | tr ' A-Z#' '_a-z_' | tr -d ,:)" if [[ "${filename}" != "${newfilename}" ]]; then mv -v "${dirname}/${filename}" "${dirname}/${newfilename}" fi done