40 lines
1.1 KiB
Text
40 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.
|
||
|
|
||
|
"""]]
|