Linux常用基本命令(rename,basename,dirname)

ghostwu發表於2018-05-08

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

 

相關文章