shell脚本批量更改文件夹目录名称(删除文件夹中所有冒号)

shell脚本更改文件夹名称(删除文件夹中所有冒号)

整体步骤

  1. 分析文件夹结构
  2. 批量修改文件夹名称命令

文件夹目录结构如下:
|–图像数据
  |–20190830
    |–20190830rent
      |–dw_2019_09_02_151221_000000_YSG20190723CD
       |camera_test_a01.h264
       |camera_test_a01.h264.timestamps
思路:

  1. 第1层for循环遍历./图像数据/目录下各日期文件夹,如20190830,20190831等;
  2. 第2层for循环遍历./图像数据/20190830/20190830rent;
  3. 第3层for循环遍历./图像数据/20190830/20190830rent/下dw*文件夹,同时运行更改文件夹命令。
    批量修改文件夹名称命令:
    `new=echo $f2|sed -e ‘s/\.//g’`

注意!!!
正则表达式中.表示匹配除换行符以外的任意字符,如果不用转义字符\,则将文件夹名称全部删除,因此会出现以下错误:

mv: missing destination file operand after 'dw_2019_09_04_165113_000000_YSG20190723CD'
Try 'mv --help' for more information.

整个脚本改名如下:

#!/bin/bash
function travFolder(){
    flist=`ls $1`
    cd $1
    for f in $flist
    do
        if test -d $f
        then
            flist1=`ls $f`
            cd $f
            for f1 in $flist1
            do
                if test -d $f1
                then
                    flist2=`ls $f1`
                    cd $f1
                    for f2 in $flist2
                    do
                        new=`echo $f2|sed -e 's/\.//g'`
                        #echo $new
                        mv $f2 $new
                    done
                    cd ../
                fi
            done
            cd ../
        fi
    done
    cd ../
}
dir=./图像数据/
travFolder $dir
    原文作者:hjw2719
    原文地址: https://blog.csdn.net/hjw2719/article/details/100654769
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞