重命名文件和目录在Linux系统上执行的最基本的任务之一,可以使用GUI文件管理器或命令行终端重命名文件。

重命名单个文件很容易,但是一次重命名多个文件会是一个挑战,特别对于新接触Linux的用户。

在本教程中,向你展示如何使用mv和rename命令重命名文件和目录。

使用mv命令重命名文件

mv命令用于将文件从一个位置重命名或移动到另一个位置,mv命令的语法如下所示:mv [OPTIONS] source destination

source可以是一个或多个文件,或者目录,而destination可以是单个文件或目录,如果将多个文件指定为source,就destination必须是一个目录,在这种情况下,SOURCE文件被移动到目标目录

如果将单个文件指定为SOURCE,并且DESTINATION目标是现有目录,那么这个文件将移动到指定的目录

要重命名文件,你需要将单个文件指定为source,并将单个文件指定为destination目标

例如要将文件file1.txt重命名为file2.txt,你将运行:mv file1.txt file2.txt

使用mv命令重命名多个文件

mv命令一次只能重命名一个文件,但可以与其他命令(例如find或bash for, while循环)结合使用,以重命名多个文件。

下面的示例演示如何使用Bash for循环将.html扩展名更改为.php,重命名当前目录中的所有.html文件。for f in *.html; do

mv -- "$f" "${f%.html}.php"

done

逐行分析代码:第一行创建一个for循环,并遍历使用.html的所有文件的列表

第二行应用于列表的每一项,并将文件移动到一个新行,用.html替换.php,部分${file%.html}使用shell参数扩展从文件名中删除.html部分

done表示循环段的结束

下面是使用mv和find实现与上面相同的示例:find.-depth -name "*.html" -exec sh -c 'f="{}"; mv --"$f""${f%.html}.php"' ;

find命令使用mv选项将当前目录中以.html结尾的所有文件逐个传递给-exec,字符串{}是当前正在处理的文件名。

从上面的示例中可以看到,使用mv命令重命名多个文件并不是一件容易的事情,因为它需要对Bash脚本编程有很好的了解。

使用rename命令重命名文件

rename命令用于重命名多个文件,此命令比mv高级,因为它需要一些正规表达式的基本知识。

有两种不同语法的rename命令版本,在本教程中,使用Perl版本的rename命令,如果你的系统上没有安装此版本,你可以使用发行版的包管理器轻松安装它。

在Ubuntu和Debian上安装renamesudo apt install rename

在CentOS和Fedora上安装renamesudo yum install prename

在Arch Linux上安装renameyay perl-rename ## or yaourt -S perl-rename

rename命令的语法如下所示:rename [OPTIONS] perlexpr files

rename命令将根据指定的perlexpr正则表达式重命名files,你可以阅读有关perl正规表达式的更多信息这里,

以下示例将扩展名为.html的所有文件更改为.php:rename 's/.html/.php/' *.html

可以使用-n选项打印要重命名的文件的名称,而无需重命名它们。rename -n 's/.html/.php/' *.html

输出将类似于以下内容:rename(file-90.html, file-90.php)

rename(file-91.html, file-91.php)

rename(file-92.html, file-92.php)

rename(file-93.html, file-93.php)

rename(file-94.html, file-94.php)

默认情况下,rename命令不覆盖现有文件,传递-f选项以允许现有文件重写:rename -f 's/.html/.php/' *.html

以下是使用rename命令的一些更常见的示例:

用下划线替换文件名中的空格rename 'y/ /_/' *

将文件名转换为小写rename 'y/A-Z/a-z/' *

将文件名转换为大写rename 'y/A-Z/a-z/' *

结束语

我们向你展示了如何使用mv和rename命令重命名文件。

当然,还有其他命令可以在Linux中重命名文件,例如mmv。

如果你有问题或反馈,请留下评论。

在linux中给文件重命名,在Linux中,如何重命名文件和目录相关推荐

  1. linux移动或重命名命令,Linux移动文件或重命名的命令是什么

    1. mv命令简介 本文主要是讲解如何使用mv命令对Linux文件进行重命名和剪切以及讲解mv命令常见使用方法.mv命令是move的缩写,可以用来移动文件或者将文件改名.mv命令是最常用的Linux命 ...

  2. linux 文件 重命名 缓存,linux – rename()原子性和NFS?

    参考: Is rename() atomic? 我问的是类似的东西,但不完全相同,因为我想知道的是在使用NFS时依赖于rename()的原子性是否安全? 这是我正在处理的一个场景 – 我有一个必须始终 ...

  3. python对多个文件统一重命名删除名中部分字符

    python对多个文件统一重命名删除名中部分字符 ** 因为有的时候网上找到的压缩包解压后的文件很乱,文件名太长,多了很多不需要的字,不方便查看, 出于想快捷删除文件名中部分字的简单需求,很久前编写了 ...

  4. 批量重命名 教你使用替换功能 将文件名称中特定符号进行替换

    在工作中,我们经常需要批量修改一堆文件名称中指定字符的场景,比如把文件中的符号进行替换,如何只是很少的文件,我们手动进行修改也是非常方便的,但是当文件量非常大的时候,我们就需要借助工具来完成,小编今天 ...

  5. linux 把一个文件夹重命名后,移动到另外一个文件夹下

    linux 把一个文件夹重命名后,移动到另外一个文件夹下 mv /ssd1/AAA/PBMC_rat/RAT/index /ssd1/zhihengfeng/PBMC_rat/star

  6. 重新命名的linux命令,Linux 重命名命令自制详细介绍

    Linux 重命名命令 相比于Windows上的ren命名,Linux还真的是没有一个特定的重命名的命令.(虽然可以间接的使用mv来实现).下面我就来自己写一个简单的重命名命令. 准备工作 操作系统: ...

  7. 使用pandas批量重命名(指定Excel中的对应列)

    tags: Python Pandas Excel Tips 写在前面 今天有个朋友问我有没有一种简单的方法将Excel中的学号和姓名列作为文件名, 批量重命名100个Word文档, 下面是具体的文件 ...

  8. linux如何提取文件名称,如何在Linux中提取路径和文件名的特定部分

    我目前的任务是将跨多个目录的大量文件重命名为不同的标识符.如何在Linux中提取路径和文件名的特定部分 所以我有几个目录,如:B01,B02,B03等,在每个目录的文件名如img01.23495.pn ...

  9. linux上传文件命令ftp put,Linux ftp 命令行中下载文件get与上传文件put的命令应用详解...

    介绍:从本地以用户anok登录的机器192.168.0.16上通过ftp远程登录到192.168.0.6的ftp服务器上,登录用户名是peo.以下为使用该连接做的实验. 查看远程ftp服务器上用户pe ...

最新文章

  1. Cloneable接口和循环冗余校验算法
  2. oracle数据库定时任务
  3. 程序员面试题100题第19题——反转链表
  4. Codeforces round 1083
  5. 朱宁:70%散户跑不赢大盘?因为机构利用了他们的错误
  6. 客户旅程_我如何充分利用freeCodeCamp的旅程
  7. 天地与我并存/万物与我为一 2
  8. wordpress 评论ajax,WordPress教程 WordPress实现提交评论ajax翻页效果教程
  9. 石青建站养站大师 v1.8.6.1
  10. 计算机软著研究生毕业,关于研究生推免工作科研成果和竞赛计分详细说明
  11. Log4j和Slf4j的比较
  12. 思科首席技术官解析:统一计算及战略
  13. 使用itextpdf将多个PDF文件合并为一个PDF文件
  14. 左耳朵耗子:程序员练级攻略
  15. EXCEL对比两列中查找相同的数据
  16. leetcode#8 deterministic finite automaton, DFA
  17. pytorch训练时报input size错误问题
  18. Android心率测试
  19. WebForm:毒药还是利器?
  20. 基于java web和echarts的数据可视化项目

热门文章

  1. Redis 基础 -- 有序集合 SortedSet类型 和 SortedSet类型的常用命令
  2. win10开始菜单和cortana无法工作怎么办 win10关键错误解决方法
  3. android 画 月牙曲线,牙齿矫正真能改变脸型?这四类人最有发言权
  4. unity Shader Graph实现2D图片扭曲波纹效果
  5. 第三方平台标识头像数据库设计参考
  6. 赶紧收藏,一天剪辑10条视频收益400多,分享这3大自媒体工具
  7. MICK-SQL基础教程(第二版)第七章 集合运算
  8. 2020 - [Java基础 +多线程 + 虚拟机] + [计网 + 操作系统] + [MySQL] + [Redis] + [RocketMQ] + [Spring]常见面试题与解析
  9. 跳一跳高分秘籍 | 2017年的最后一篇文章
  10. 计算机网络实验哈工大威海,哈工大威海计算机网络实验1试编.doc