教你在 Centos8 中如何更改文件夹里多个文件的扩展名

系统 Linux
本教程将讨论将文件从特定扩展名更改为另一个扩展名的快速方法。我们将为此使用 shell循环、rename命令。
本教程将讨论将文件从特定扩展名更改为另一个扩展名的快速方法。我们将为此使用 shell循环、rename命令。

方法一:使用循环

在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell 脚本提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是脚本内容:

  1. [root@localhost ~]# vim rename_file.sh 
  2. #!/bin/bash 
  3. echo "Enter the target directory " 
  4. read target_dir 
  5. cd $target_dir 
  6.  
  7. echo "Enter the file extension to search without a dot" 
  8. read old_ext 
  9.  
  10. echo "Enter the new file extension to rename to without a dot" 
  11. read new_ext 
  12.  
  13. echo "$target_dir, $old_ext, $new_ext" 
  14.  
  15. for file in *.$old_ext 
  16. do 
  17.     mv -v "$file" "${file%.$old_ext}.$new_ext" 

上面的脚本将询问用户要处理的目录,然后 cd 进入设置目录。接下来,我们得到没有点.的旧扩展名。最后,我们获得了新的扩展名来重命名文件。然后使用循环将旧的扩展名更改为新的扩展名。

其中${file%.$old_ext}.$new_ext意思为去掉变量$file最后一个.及其右面的$old_ext扩展名,并添加$new_ext新扩展名。

使用mv -v,让输出信息更详细。

下面运行脚本,将/root/test下面的以.txt结尾的替换成.log:

  1. [root@localhost ~]# chmod +x rename_file.sh  
  2. [root@localhost ~]# ./rename_file.sh  
  3. Enter the target directory  
  4. /root/test 
  5. Enter the file extension to search without a dot 
  6. txt 
  7. Enter the new file extension to rename to without a dot 
  8. log 
  9. /root/test, txt, log 
  10. renamed 'file10.txt' -> 'file10.log' 
  11. renamed 'file1.txt' -> 'file1.log' 
  12. renamed 'file2.txt' -> 'file2.log' 
  13. renamed 'file3.txt' -> 'file3.log' 
  14. renamed 'file4.txt' -> 'file4.log' 
  15. renamed 'file5.txt' -> 'file5.log' 
  16. renamed 'file6.txt' -> 'file6.log' 
  17. renamed 'file7.txt' -> 'file7.log' 
  18. renamed 'file8.txt' -> 'file8.log' 
  19. renamed 'file9.txt' -> 'file9.log' 

如果想将.log结尾的更改回.txt,如下操作:

 

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2009-08-25 09:26:57

Windows 7查看文件扩展名

2010-04-27 12:32:05

2009-10-21 10:13:19

Linux文件扩展名

2022-11-02 08:20:43

Linux

2020-06-15 18:40:15

Ubuntu 20.0文件夹颜色Ubuntu

2022-04-30 09:41:14

LinuxNTP服务器

2017-03-21 10:11:36

Windows 10Windows文件扩展名

2011-08-02 09:38:58

ActiveDirec域控制器共享文件夹

2022-04-15 07:51:36

Centos8迁移逻辑卷

2022-03-16 20:27:12

微软Windows操作

2011-08-02 09:22:15

ActiveDirec域控制器共享文件夹

2016-12-07 09:30:00

Power QueryExcel文件

2009-10-29 14:50:22

VB.NET扩展名分组

2010-05-21 14:09:41

2023-05-13 17:43:17

Linux文件文件夹

2021-08-16 13:34:07

Linux终端删除文件

2021-04-01 16:36:07

macOS文件夹磁盘

2022-07-08 15:09:26

Linux

2019-10-28 14:38:36

RsyslogCentOS8开源

2014-02-12 10:58:05

Linux文件夹文件权限
点赞
收藏

51CTO技术栈公众号