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
 | 
