#!/projs/bin/tclsh set prefix /export/web/data1/repository set write_to_dir /export/web/data2/scripts/file_size if {[file exists $write_to_dir]} { exec rm -rf $write_to_dir } proc clean {write_to_dir extension} { if {[file exists $write_to_dir/$extension]} { exec rm -rf $extension } } proc search {path extension} { set files [exec find $path -name "*.$extension"] if {$files == ""} { return 0 } foreach file [split $files \n] { lappend file [string index [file tail $file] 0] lappend file_list $file } return $file_list } foreach extension {stp step igs iges sat acis dgn dxf dwg kid prt neu asm scm xmt xmt_txt gif esp pdf wrl ps} { if {![file exists $write_to_dir]} { exec mkdir $write_to_dir } clean $write_to_dir $extension set files [lsort -index 1 [search $prefix $extension]] if {$files == 0} { continue } exec mkdir $write_to_dir/$extension for {set count 0} {$count < [llength $files]} {incr count} { set first_letter [string toupper [lindex [lindex $files $count] 1]] set file_full [lindex [lindex $files $count] 0] set file_name [file tail $file_full] if {![file exists $write_to_dir/$extension/$first_letter]} { exec mkdir $write_to_dir/$extension/$first_letter } if {![file exists $write_to_dir/$extension/$first_letter/$file_name]} { exec ln -s [file dirname $file_full] $write_to_dir/$extension/$first_letter/$file_name } else { # File's already there set version 1 while {[file exists $write_to_dir/$extension/$first_letter/[file rootname $file_name]_version$version[file extension $file_name]]} { incr version } exec ln -s [file dirname $file_full] $write_to_dir/$extension/$first_letter/[file rootname $file_name]_version$version[file extension $file_name] } } }