当前位置 主页 > 服务器问题 > Linux/apache问题 >

    Linux 下rename 命令的用法第2/2页

    栏目:Linux/apache问题 时间:2018-10-24 13:41

    刚学习linux的时候,对文件重命名首先想到的就是rename命令,但是按照在windows下对文件重命名的方式试了N多次都没有反应,在网上一搜索,发现很多人都对rename命令知之甚少,甚至有一部分人说linux下没有rename命令,建议大家用mv命令。鉴于此,于是man rename一下,好好的研究了一下它的用法 ,在此对rename命令和mv命令在重命名文件方面做一个比较,有不足之处,希望各位博友指正!

    下面以例子加以说明:

    如文件夹中有这些文件foo1, ..., foo9, foo10, ..., foo278,如果使用

    rename foo foo0 foo?

    则它只会把foo1到foo9的文件重命名为foo01到foo09,因为?通配符只能替代单个字符,所以被重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。

    再继续使用

    rename foo foo0 foo??

    则文件夹中的foo01到foo99的所有文件都被重命名为foo001到foo099,而foo100及其以后的文件名都不变,因为通配符?的使用,所以只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。

    如果再继续使用

    rename foo foo0 foo*

    则foo001到foo278的所有文件都被重命名为foo0001到foo0278,因为通配符*可替代多个字符,所以,所有以foo开头的文件都被重命名了,文件名中的foo被替换为foo0。

    我们再来看通配符[charset]的用法,还是继续在上面所说的文件夹中,执行如下命令

    rename foo0 foo foo0[2]*

    则从foo0200到foo0278的所有文件都被重命名为foo200到foo278,文件名中的foo0被替换为foo。

    在使用中,三种通配符可以一起结合使用,关于具体的其它用法就只有自己不断的摸索了。
    上一页12阅读全文