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