rename:重命名文件,
我下面的操作是在ubuntu16.04发行版 演示的,centos下面的语法有些不同
1,首先,生成1到100命名的.html后缀的文件
ghostwu@dev:~/linux/rename$ ls ghostwu@dev:~/linux/rename$ touch {1..100}.html ghostwu@dev:~/linux/rename$ ls 100.html 21.html 33.html 45.html 57.html 69.html 80.html 92.html 10.html 22.html 34.html 46.html 58.html 6.html 81.html 93.html 11.html 23.html 35.html 47.html 59.html 70.html 82.html 94.html 12.html 24.html 36.html 48.html 5.html 71.html 83.html 95.html 13.html 25.html 37.html 49.html 60.html 72.html 84.html 96.html 14.html 26.html 38.html 4.html 61.html 73.html 85.html 97.html 15.html 27.html 39.html 50.html 62.html 74.html 86.html 98.html 16.html 28.html 3.html 51.html 63.html 75.html 87.html 99.html 17.html 29.html 40.html 52.html 64.html 76.html 88.html 9.html 18.html 2.html 41.html 53.html 65.html 77.html 89.html 19.html 30.html 42.html 54.html 66.html 78.html 8.html 1.html 31.html 43.html 55.html 67.html 79.html 90.html 20.html 32.html 44.html 56.html 68.html 7.html 91.html
2,通过rename+正则表达式,把.html后缀去掉
ghostwu@dev:~/linux/rename$ rename 's/\.html//' *.html ghostwu@dev:~/linux/rename$ ls 1 14 2 25 30 36 41 47 52 58 63 69 74 8 85 90 96 10 15 20 26 31 37 42 48 53 59 64 7 75 80 86 91 97 100 16 21 27 32 38 43 49 54 6 65 70 76 81 87 92 98 11 17 22 28 33 39 44 5 55 60 66 71 77 82 88 93 99 12 18 23 29 34 4 45 50 56 61 67 72 78 83 89 94 13 19 24 3 35 40 46 51 57 62 68 73 79 84 9 95
s:表示替换, //两个斜杠中没有内容,表示.html 替换为空
3,在文件末尾添加.html后缀
ghostwu@dev:~/linux/rename$ ls 1 14 2 25 30 36 41 47 52 58 63 69 74 8 85 90 96 10 15 20 26 31 37 42 48 53 59 64 7 75 80 86 91 97 100 16 21 27 32 38 43 49 54 6 65 70 76 81 87 92 98 11 17 22 28 33 39 44 5 55 60 66 71 77 82 88 93 99 12 18 23 29 34 4 45 50 56 61 67 72 78 83 89 94 13 19 24 3 35 40 46 51 57 62 68 73 79 84 9 95 ghostwu@dev:~/linux/rename$ rename 's/$/\.html/' * ghostwu@dev:~/linux/rename$ ls 100.html 21.html 33.html 45.html 57.html 69.html 80.html 92.html 10.html 22.html 34.html 46.html 58.html 6.html 81.html 93.html 11.html 23.html 35.html 47.html 59.html 70.html 82.html 94.html 12.html 24.html 36.html 48.html 5.html 71.html 83.html 95.html 13.html 25.html 37.html 49.html 60.html 72.html 84.html 96.html 14.html 26.html 38.html 4.html 61.html 73.html 85.html 97.html 15.html 27.html 39.html 50.html 62.html 74.html 86.html 98.html 16.html 28.html 3.html 51.html 63.html 75.html 87.html 99.html 17.html 29.html 40.html 52.html 64.html 76.html 88.html 9.html 18.html 2.html 41.html 53.html 65.html 77.html 89.html 19.html 30.html 42.html 54.html 66.html 78.html 8.html 1.html 31.html 43.html 55.html 67.html 79.html 90.html 20.html 32.html 44.html 56.html 68.html 7.html 91.html
4,把.html后缀替换为.htm
ghostwu@dev:~/linux/rename$ rename 's/\.html/\.htm/' * ghostwu@dev:~/linux/rename$ ls 100.htm 19.htm 28.htm 37.htm 46.htm 55.htm 64.htm 73.htm 82.htm 91.htm ...
5,basename,返回路径中的文件名部分
ghostwu@dev:~$ basename ./linux/rename/1.htm 1.htm
6,basename, 返回路径中的文件名,不包括后缀
ghostwu@dev:~$ basename ./linux/rename/1.htm .htm 1
7,dirname,返回文件的路径部分
ghostwu@dev:~$ dirname ./linux/rename/1.htm ./linux/rename