在Linux中重命名文件和目录的几种方法

 更新时间:2024年01月14日 11:13:37   作者:库库的里昂  
在这篇基本命令行教程中,你将学习在 Linux 终端重命名文件和目录的各种方法,文中通过代码示例讲解非常详细,对学习Linux重命名文件和目录非常有帮助,需要的朋友跟着小编一起来学习吧

前言

在这篇基本命令行教程中,你将学习在 Linux 终端重命名文件和目录的各种方法。

如何在 Linux 终端中重命名文件和目录?你可以使用 mv 命令。

是的,与用于将文件和文件夹从一个位置“移动”到另一个位置的 mv 命令相同。

你可以在“移动文件和目录”时简单地指定文件和目录的新名称。

要重命名文件,请使用:

mv old_file new_file

同样,要重命名目录,请使用:

mv old_dir new_dir

听起来很容易,对吧? 但我将在这里详细讨论文件重命名:

◈ 向你展示重命名的实际示例

◈ 显示通过结合 find 和 exec 命令批量重命名多个文件的示例

◈ 讨论用于批量重命名文件的专用程序

我们来一一看看。

使用 mv 命令重命名文件和目录

使用 mv 命令重命名同一目录中的文件:

mv file1.txt file2.txt

同样,你可以重命名同一位置的目录:

mv dir1 dir2

这是我重命名文件和目录的示例:

图片

如你所见,与 cp 命令itsfoss.com 不同,你不必使用递归选项来通过 mv 命令linuxhandbook.com 处理目录。

如果你尝试使用相同的名称重命名该文件,你会看到一个错误(显然)。

你还可以在将文件移动到另一个位置时重命名它:

mv old-file-name another_dir/new-file-name

在下面的示例中,我将名为 firefox-quiz.txt 的文件移动到示例目录。在这样做的同时,我将其重命名为 quiz.txt

图片

我将其视为剪切粘贴操作。

虽然你可以将多个文件移动到另一个位置(mv file1 file2 file2 dir),但你不能使用 mv 重命名多个文件。为此,你必须采用我在以下部分中讨论的其他策略。

通过组合 mv、find 和 exec 命令重命名与某个模式匹配的多个文件

批量重命名此类文件时要格外小心。一步错误的举动就会导致无法挽回的不良结果。

find 命令用于根据文件名、类型、修改时间和其他参数在给定目录中查找文件。exec 命令与 findlinuxhandbook.com 结合使用,对 find 命令的结果执行命令。

使用 findexec 和 mv 命令没有固定标准的结构。你可以根据需要组合它们。

假设你想通过在名称中添加 _old 来重命名当前目录中以 .txt 结尾的所有文件。所以 file_1.txt 变成 file_1.txt_old 等等。

find . -type f -name "*.txt" -exec mv {} {}_old ;

图片

这只是一个示例,你的重命名要求可能会有所不同。另外,以上仅适用于不带空格的文件名。

专业提示:在处理这样的批量操作时,你可以巧妙地使用 echo 命令来查看将执行什么操作,而不是实际执行它。如果看起来不错,那就采取实际行动吧。

例如,首先查看哪些文件将被重命名:

find . -type f -name "*.txt" -exec echo mv {} {}_old \;

图片

如你所见,实际上没有重命名任何文件。但是,如果你在没有使用回显(echo)命令的情况下运行上述命令,你将看到将执行什么命令。

如果你觉得没问题,请删除 echo 命令并继续进行实际的重命名。

find . -type f -name "*.txt" -exec mv {} {}_old \;

使用 rename 命令轻松重命名多个文件

有一个名为 rename 的便捷命令行程序,可用于根据给定的 Perl 正则表达式模式批量重命名文件。

该实用程序不是 GNU 工具链的一部分,也不是预安装的。因此,你必须首先使用发行版的包管理器来安装它。

对于 Debian/Ubuntu,命令为:

sudo apt install rename

你可以通过以下方式使用它:

rename [options] perl_regex [files]

选项有:

◈ -v : 详细模式

◈ -n :无操作,显示将被重命名的文件,但不重命名它们

◈ -o : 不覆盖

◈ -f : 强制覆盖现有文件

◈ -s : 不重命名软链接,只重命名其目标

现在,让我们采用你在上一节中看到的相同示例。将 *.txt 重命名为 .txt_old

rename 's/\.txt$/.txt_old/' **

我不打算在这里解释正则表达式。** 表示查看所有子目录中的所有文件。

图片

正如你所看到的,它按预期工作。

总结

我希望你喜欢这个技巧,它可以帮助你学习在 Linux 命令行中执行基本任务。当然是针对那些想学习和使用命令行的人。桌面用户始终拥有用于此类任务的 GUI 工具。

如果你对 Linux 命令完全陌生,本系列将对你有很大帮助。

以上就是在Linux中重命名文件和目录的常用方法的详细内容,更多关于Linux重命名文件和目录的资料请关注脚本之家其它相关文章!

相关文章

  • 使用shell脚本一键部署LNMP架构的方法

    使用shell脚本一键部署LNMP架构的方法

    这篇文章主要介绍了使用shell脚本一键部署LNMP架构的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • shell脚本实现多彩进度条

    shell脚本实现多彩进度条

    这篇文章主要介绍了shell脚本实现多彩进度条的相关资料,需要的朋友可以参考下
    2017-07-07
  • 一文掌握Linux命令lsscsi

    一文掌握Linux命令lsscsi

    想要弄明白lsscsi命令,首先我们必须搞清楚什么是SCSI,以及常见的硬盘接口,常用的硬盘参数,今天通过本文给大家介绍下Linux命令lsscsi,需要的朋友可以参考下
    2022-09-09
  • Linux shell常用的73条命令总结

    Linux shell常用的73条命令总结

    对于经常使用linux系统的朋友们来说,基本常用的shell命令是少不了的,下面这篇文中就为大家总结了Linux shell的常用命令,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • bash脚本中if语句的使用方法

    bash脚本中if语句的使用方法

    与大多数语言一样,bash 有自己的条件形式。在使用时,要遵循以上格式;即,将 "if" 和 "then" 放在不同行,并使 "else" 和结束处必需的 "fi" 与它们水平对齐。这将使代码易于阅读和调试
    2014-05-05
  • Shell交互批量更改主机名的方法

    Shell交互批量更改主机名的方法

    大家可能会遇到这种情况,需要批量修改主机名和同步hosts文件到多台主机,例如新购置了一批云服务器等,可能主机名称上并不能满足你的命名规则或规范,但如果一台台去更改可能就太慢又无聊,所以shell脚本绝对是你的最佳选择。下面看看Shell批量更改主机名的方法。
    2016-12-12
  • 合并一个文件夹下多个文件内容的单行shell命令

    合并一个文件夹下多个文件内容的单行shell命令

    有时候我们需要合并一个文件夹下多个文件内容,那么就可以参考下面的代码,单行shell就是可以实现了,需要的朋友可以参考下
    2013-02-02
  • 101个shell脚本 猜数字游戏代码

    101个shell脚本 猜数字游戏代码

    原本书上这个例子是教调试脚本的,它故意给出的脚本中有几个错误,教我们认识系统提示的错误,并修改运行。但比较难写出来,所以把修改好了的脚本放上来,这个脚本比较有趣味的
    2016-08-08
  • Linux systemd 定时任务原理解析

    Linux systemd 定时任务原理解析

    说到 Linux 定时任务,大家用得最多的就是 crond 服务,但其实 systemd 也有类似的功能,我们不但可以通过 systemd 来管理服务,还能设置定时任务,那就是 systemd timer,接下来通过本文介绍Linux systemd 定时任务的相关知识,需要的朋友可以参考下
    2024-04-04
  • 利用shell命令统计日志的方法详解

    利用shell命令统计日志的方法详解

    这篇文章主要给大家介绍了关于利用shell命令统计日志的方法,通过这个命令将会对大家的学习或者工作具有一定的参考学习价值,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-09-09

最新评论