FAT sanitizer
Have you ever had to move a lot of files from a sane filesystem to one that behaves more like FAT? Do these files have “strange” characters in their names, such as ‘:’, ‘?’, or ‘*’? This simple utility can rename these files so that the FAT-invalid characters are replaced with ‘_’. Works great for “fixing” the filenames on your music collection before transferring it to your portable audio player. You can download it here.
#!/usr/bin/env ruby require 'find' bad_str = ":<>\\|*?\"" bad_files = Array.new Find.find(ARGV[0]) do |file| bad_files.push file end # reverse array so bad directories come after the files bad_files.reverse! bad_files.each do |file| basename = File.basename(file) if basename.count(bad_str) > 0 dirname = File.dirname(file) new_file = File.join(dirname, basename.tr(bad_str, '_')) puts [file, ' -> ', new_file].join File.rename( file, new_file ) end end