Simon James wrote: > Can any *nix aficionados give me a command to recursively search a directory > structure and remove the trailing spaces from any file names? Spaces within > the name need to remain ideally, it is just the ones at the end I want gone. > > EG > > "Saturday Night.txt " needs to become "Saturday Night.txt" > > A client has been fairly sloppy with the naming of files on his Mac which > handle them fine, but when he tries to backup these files to an SMB share > the process fails.
Here is a Python script (requires Python 2.3 or later to be installed - see http://www.python/org ) - this is untested, so test it first and then uncomment the os.rename() line when you are satisfied it won't eat all your files for breakfast. Change the value of top to wherever in your filesystem you want to start - it will recurse all the way down under that. Provided as-is, with no warranty expressed or implied, absolutely no responsibility for stuff-ups or mishaps accepted. Horst or Ian can improve on this, I'm sure. ##################### import os top = '/home/simon' for root, dirs, files in os.walk(top): for oldname in files: if oldname.endswith(' '): newname = os.path.join(root, oldname.rstrip()) oldname = os.path.join(root, oldname) try: # os.rename(oldname,newname) print 'renamed ', oldname, '->', newname except: print 'Cannot rename ', oldname, ', non-unique?' #################### Tim C _______________________________________________ Gpcg_talk mailing list [email protected] http://ozdocit.org/cgi-bin/mailman/listinfo/gpcg_talk
