This utility changes the filenames that are in upper-case to lower-case.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #!/bin/sh
#\
exec tclsh "$0" "$@"
#changes filenames in caps to lowercase
#show usage info if no option is given
if {[llength $argv] == 0} {
puts "Usage: hi2lo file1 file2..."
}
foreach file $argv {
#check if the string contains any UPPERCASE letter
if {[string is lower $file]} {
puts "File '$file' is already in lowercase."
} else {
set filelow [string tolower $file]
#check if the file is present on the disk
if {[file exists $file]} {
#check if the two names are different
if {[string compare $file $filelow]} {
puts "From: $file To: $filelow"
exec cp $file $filelow
}
}
}
}
|
While moving files from Windows to Unix, a common problem is that the filenames under Windows are in caps; whereas in Unix it is preferable/addiction to keep the filenames in lower-case. The basic minimum is to use 'mv' command. However, dealing with lots of files is a trouble. This script is to be put in your bin directory and then used as $ hi2lo FILE1 FILE2 ... It will create file1, file2 ... keeping the original FILE1, FILE2,... intact.
Use built in Tcl commands where available -- not exec. Instead try: