• Linux下重命名文件或文件夹(mv命令与rename命令)


    在Linux下重命名文件或目录,可以使用mv命令或rename命令

    mv

    ————————————

    mv命令既可以重命名,又可以移动文件或文件夹。

    例子:将目录A重命名为B

    mv A B

    例子:将/a目录移动到/b下,并重命名为c

    mv /a /b/c

    其实在文本模式中要重命名文件或目录,只需要使用mv命令就可以了,比如说要将一个名为abc的文件重命名为1234:

    mv abc 1234

    注意,如果当前目录下也有个1234的文件的话,这个文件是会将它覆盖的。

    rename

    ————————————

    批量创建那些规格差不多的文件名。【测试的第一步】

    [root@linuxidc net]# for i in `seq -w 10`
    > do touch stu\_$i\_linux.jpg
    > done
    [root@linuxidc net]# sl
    total 0
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_01_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_02_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_03_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_04_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_05_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_06_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_07_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_08_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_09_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_10_linux.jpg

    然后,使用rename进行修改

    [root@linuxidc net]# rename \_linux '' *.jpg
    [root@linuxidc net]# sl
    total 0
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_01.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_02.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_03.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_04.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_05.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_06.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_07.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_08.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_09.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:22 stu_10.jpg

    注意,如果想要替换掉下划线,那么你不能加任何引号。

    创建一些测试文件:

    [root@linuxidc net]# for i in `seq -w 10`; do touch stu\_$i\_linux.jpg; done
    [root@linuxidc net]# sl
    total 0
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_01_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_02_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_03_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_04_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_05_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_06_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_07_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_08_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_09_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:58 stu_10_linux.jpg
    [root@linuxidc net]# rename '\_linux' '' *.jpg
    [root@linuxidc net]# sl
    total 0
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_01_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_02_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_03_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_04_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_05_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_06_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_07_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_08_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_09_linux.jpg
    -rw-r--r-- 1 root root 0 Oct 9 21:27 stu_10_linux.jpg

    rename版本如果是perl版本的,那rename命令是支持正则的;因此在perl版本的rename下,执行上述命令就可以成功,如果rename版本是c版本的,那么上述命令是不成功的。

    这个是版本支持的问题,所以不必深究。有关二个版本的比较,请参考:linux下rename命令批量重命名中的详细介绍。

    之前的问题可能是因为他的rename版本不支持导致的。so,这里重点说的就是rename,虽然这个命令不是很重要。但是它其实还是很有用的,不是吗?

    当然,有人会说,你这个都是在一个目录下,那我要是在不同的目录下呢?
    用两个命令。一个find先把要修改的文件找出来,再接一个管道,一个rename不就完了吗?
    是的,上述办法可以说是一种思路,其实有很多种思路。

    附,查看rename版本的信息

    [root@linuxidc net]# man rename | head -1
    RENAME(1) Linux Programmer’s Manual RENAME(1)

  • 相关阅读:
    会话管理?
    为什么要用 Dubbo?
    abstract class和interface有什么区别?
    接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法?
    用最有效率的方法算出2乘以8等於几?
    如何把一段逗号分割的字符串转换成一个数组?
    查看文件内容有哪些命令可以使用?
    使用哪一个命令可以查看自己文件系统的磁盘空间配额 呢?
    Spring框架中的单例bean是线程安全的吗?
    你更倾向用那种事务管理类型?
  • 原文地址:https://www.cnblogs.com/liaojie970/p/6746331.html
Copyright © 2020-2023  润新知