44 lines
933 B
Bash
44 lines
933 B
Bash
#! /bin/bash
|
|
#
|
|
# original from
|
|
# @(#) lowercase.ksh 1.0 92/10/08
|
|
# 92/10/08 john h. dubois iii (john@armory.com)
|
|
#
|
|
# conversion to bash v2 syntax done by Chet Ramey
|
|
|
|
Usage="Usage: $name file ..."
|
|
phelp()
|
|
{
|
|
echo "$name: change filenames to lower case.
|
|
$Usage
|
|
Each file is moved to a name with the same directory component, if any,
|
|
and with a filename component that is the same as the original but with
|
|
any upper case letters changed to lower case."
|
|
}
|
|
|
|
name=${0##*/}
|
|
|
|
while getopts "h" opt; do
|
|
case "$opt" in
|
|
h) phelp; exit 0;;
|
|
*) echo "$Usage" 1>&2; exit 2;;
|
|
esac
|
|
done
|
|
|
|
shift $((OPTIND - 1))
|
|
|
|
for file; do
|
|
filename=${file##*/}
|
|
case "$file" in
|
|
*/*) dirname=${file%/*} ;;
|
|
*) dirname=. ;;
|
|
esac
|
|
nf=$(echo $filename | tr A-Z a-z)
|
|
newname="${dirname}/${nf}"
|
|
if [ "$nf" != "$filename" ]; then
|
|
mv "$file" "$newname"
|
|
echo "$0: $file -> $newname"
|
|
else
|
|
echo "$0: $file not changed."
|
|
fi
|
|
done
|