linux shell中怎样批量修改文件名为 文件夹_文件名

如何将 多个目录下的文件 批量修改文件名 比如 abc目录下的test1.txt,text2.txt ... 修改为 abc_test.txt abc_test2.txt ... def目录下的test1.txt,text2.txt ... 修改为 def_test.txt def_test2.txt ... ...... 

最佳答案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/env bash
 
src_dir= /srv/http/sh/exp1/
 
dir =` ls  -1 $src_dir`
 
for  dir_name  in  ` ls  -1 $src_dir`;
do
     if  [ -d $src_dir$dir_name ]
     then
         #echo $src_dir$dir_name
         for  file_name  in  ` ls  -l $src_dir$dir_name |  grep  ^- |  awk  '{print $9}' `;
         do
             mv  $src_dir$dir_name "/" $file_name $src_dir$dir_name "/" $dir_name "_" $file_name
         done
     fi
done

你可能感兴趣的:(Linux,Shell)