2.15 rename:重命名文件
2.15.1 命令详解
【命令星级】 ★★★☆☆
【功能说明】
rename命令通过字符串替换的方式批量修改文件名。
【语法格式】
rename from to file
其中的from、to、file是三个选项。
- from:代表需要替换或者需要处理的字符(一般是文件名的一部分,也包括扩展名)。
- to:把前面的from代表的内容替换为to代表的内容。
- file:待处理的文件,可以用"*"通配所有的文件。
2.15.2 使用范例
**范例2-80:**批量修改文件名案例。
[root@centos7 ~]# touch stu_102999_{1..5}_finished.jpg
[root@centos7 ~]# ll -h
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_1_finished.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_2_finished.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_3_finished.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_4_finished.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_5_finished.jpg
[root@centos7 ~]# rename "_finished" "" * #将所有文件的_finished替换为空。
[root@centos7 ~]# ll
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_1.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_2.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_3.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_4.jpg
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_5.jpg
**范例2-81:**批量修改扩展名案例。
[root@centos7 ~]# rename .jpg .txt *.jpg #将所有文件的.jpg替换为.txt。
[root@centos7 ~]# ll
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_1.txt
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_2.txt
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_3.txt
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_4.txt
-rw-r--r--. 1 root root 0 Oct 21 17:34 stu_102999_5.txt
2.16 basename:显示文件名或目录名
2.16.1 命令详解
【命令星级】 ★★★☆☆
【功能说明】
basename命令用于显示去除路径和文件后缀部分的文件名或目录名。
【语法格式】
basename [name] [suffix]
basename [<文件或目录>] [后缀]
说明:
1)注意basename命令以及后面的选项和文件,每个元素之间都至少要有一个空格。
2)suffix是和旋参数,指定要去除的文件后缀字符串。
2.16.2 使用范例
**范例2-82:**显示文件或目录名。
[root@centos7 ~]# mkdir -p /data/dir1 #测试数据。
[root@centos7 ~]# touch /data/dir1/file1.txt #测试数据。
[root@centos7 ~]# basename /data/dir1/file1.txt #去除路径部分,即只显示文件名。
file1.txt
[root@centos7 ~]# basename /data/dir1/file1.txt .txt #去除路径部分(/data/dir1/)和文件后缀(.txt)
file1