Shell批量修改目录文件名的空格

/ 0评 / 0

情况1
目录中有空格,目录的空格改为下划线
dir="./"<br>find $dir -name "* *" -type d |<br>while read name; do<br>na=$(echo $name | sed 's/ /_/g')<br>mv "$name" $na<br>done

情况2
文件名是空格开头的,直接去掉开头的空格
dir="./"<br>find $dir -name "* *" -type f|grep "\/ "|<br>while read name; do<br>na=$name<br>while [[ $(echo $na|grep "\/ ") ]]; do<br>na=$(echo $na|sed 's/\/ /\//')<br>done<br>mv "$name" $na<br>done

情况3
文件名中有空格,空格改为下划线(和情况一就改了个参数)
dir="./"<br>find $dir -name "* *" -type f |<br>while read name; do<br>na=$(echo $name | sed 's/ /_/g')<br>mv "$name" $na<br>done

情况4
目录和文件名的空格都改成下划线
dir="./"<br>find $dir -name "* *" |<br>while read name; do<br>na=$(echo $name | sed 's/ /_/g')<br>mv "$name" $na<br>done