#!/bin/sh # # usage: rename.sh DIR ... filecount=0 for dname in * ; do find "${dname}" -type f |\ while read fname; do newname=$( echo "${fname}" | sed -e 's/[[:space:]]/_/g' ) if [ "${fname}" = "${newname}" ]; then continue fi mv "${fname}" "${newname}" >/dev/null 2>&1 if [ $? -ne 0 ]; then echo >&2 "$0: ${fname}: cannot rename file." else filecount=$(( $filecount + 1 )) fi done done if [ $filecount -eq 1 ]; then echo "1 file renamed." elif [ $filecount -gt 1 ]; then echo "$filecount files renamed. fi