39 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
[[!comment format=mdwn
 | 
						|
 username="mhameed"
 | 
						|
 ip="82.32.202.53"
 | 
						|
 subject="problems with spaces in filenames"
 | 
						|
 date="Wed Sep  5 09:38:56 BST 2012"
 | 
						|
 content="""
 | 
						|
 | 
						|
Spaces, and other special chars can make filename handeling ugly.
 | 
						|
If you don't have a restriction on keeping the exact filenames, then 
 | 
						|
it might be easiest just to get rid of the problematic chars.
 | 
						|
 | 
						|
    #!/bin/bash
 | 
						|
 | 
						|
    function process() {
 | 
						|
        dir="$1"
 | 
						|
        echo "processing $dir"
 | 
						|
        pushd $dir >/dev/null 2>&1
 | 
						|
 | 
						|
        for fileOrDir in *; do
 | 
						|
            nfileOrDir=`echo "$fileOrDir" | sed -e 's/\[//g' -e 's/\]//g' -e 's/ /_/g' -e "s/'//g" `
 | 
						|
            if [ "$fileOrDir" != "$nfileOrDir" ]; then
 | 
						|
                echo renaming $fileOrDir to $nfileOrDir
 | 
						|
                git mv "$fileOrDir" "$nfileOrDir"
 | 
						|
            else
 | 
						|
                echo "skipping $fileOrDir, no need to rename."
 | 
						|
            fi
 | 
						|
        done
 | 
						|
 | 
						|
        find ./ -mindepth 1 -maxdepth 1 -type d | while read d; do
 | 
						|
        process "$d"
 | 
						|
        done
 | 
						|
        popd >/dev/null 2>&1
 | 
						|
    }
 | 
						|
 | 
						|
    process .
 | 
						|
 | 
						|
Maybe you can run something like this before checking for duplicates.
 | 
						|
 | 
						|
"""]]
 |