linux 批量去掉文件名后面的^符号脚本(非专业)

        在一个项目做windows附件迁移到linux上的时候,发现迁移过来的文件名上多了一个^符号,经过此符号不可显示,若要显式在命令行输入,则需要ctrl+M。

        经过测试,非专业人员写了以下脚本用于批量去掉某一linux文件夹下文件名末尾含^符号。

        原理:

        1、查找某一目录及子目录所有文件及文件夹

        2、找出文件夹,并列出所有该文件夹下的文件

        3、判断查找到的文件名去掉^符号后与源文件名是否长度相等

        4、长度相等的文件名则不处理,否则对其进行改名(即去掉^符号)。

      mvfile.sh

#!/bin/sh
fall=$(du -a|awk '{print $2}')
count=0
for dirfile in $fall;
do 
count=$(($count+1))
if [ -d $dirfile ]; then
dirfile2=$dirfile/
           for     ffile in $(ls $dirfile);
                        do
                            ffile2=$ffile
                            mm=$(echo $ffile2|tr -d "\r")
                            if [  "$ffile" != "$mm" ];then
                     mv $dirfile2$ffile  $dirfile2$mm;
                            fi
                       done
fi
done

 

你可能感兴趣的:(程序,文件名特殊符号,linux)