0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

讨论Linux mv命令的一些实际示例

jf_ZqFkd6Up 来源:Linux迷 2023-02-14 16:28 次阅读

简介:在本初学者指南中,我们将讨论 mv 命令的一些实际示例。遵循本指南后,Linux 新手将能够从命令行界面轻松地重命名和移动文件和目录。

文件和目录是操作系统的构建块。作为普通用户,我们每天都与文件和目录进行交互。通常我们会重命名文件或将文件从一个位置移动到另一个位置以便更好地组织。

当然,我们可以使用图形用户界面 (GUI) 执行此操作。然而,大多数 Linux 用户更喜欢使用mv 命令,因为它具有丰富的功能。

在这个易于理解的指南中,我们将学习mv 命令的基础知识。顾名思义,mv 命令用于重命名或移动文件和目录。

在本指南中,我们将通过实际示例了解mv 命令。初学者在使用 Linux 系统时可以在日常工作中使用这些示例。 让我们开始吧。

mv 命令语法

mv 命令的语法类似于其他 Linux 命令。在高层次上,它分为两部分——选项和参数

$ mv [选项] <源> <目标>
$ mv [选项] <源 1> <源 2> ... <目录>

在上面的语法中,方括号([])代表可选参数,而尖括号(<>)代表强制参数。

1. 如何在 Linux 中重命名文件

mv 命令的最基本用途是重命名文件。那么让我们看看如何重命名当前目录中的文件。

首先,使用 touch 命令创建一个示例文件:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch file-1.txt

现在,让我们使用mv 命令重命名文件,如下所示:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv file-1.txt file-2.txt

最后,使用 ls 命令验证文件是否已成功重命名:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ ls -1
file-2.txt

2c592e38-ac41-11ed-bfe3-dac502259ad0.png在 Linux 中重命名文件

2. 在 mv 命令中启用详细模式

有时,我们想知道哪些文件或目录正在重命名。在这种情况下,我们可以使用-v选项来启用详细模式。

为了理解这一点,让我们使用详细模式重命名文件:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv -v file-2.txt file-1.txt 
已重命名 'file-2.txt' -> 'file-1.txt'

2c67dcbc-ac41-11ed-bfe3-dac502259ad0.png

在上面的输出中,我们可以看到,现在 mv 命令显示了重命名消息。

3. 如何在 Linux 中重命名目录

与文件类似,我们可以使用mv 命令重命名目录。为了更清楚地理解,首先您需要创建一个名为src的新目录:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mkdir src

现在,让我们使用以下命令重命名目录:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv -v src dst
已重命名 'src' -> 'dst'

2c76d6ea-ac41-11ed-bfe3-dac502259ad0.png

4.如何将多个文件移动到目录

很多时候,我们将文件移动到一个目录中以便更好地组织。例如,将所有音频文件保存在一个目录中是很常见的做法。

当然,我们可以多次使用mv命令来实现。但是,随着文件数量的增加,该过程很快就会变得非常耗时。

但是,为了节省时间,我们可以使用mv 命令的替代语法。

让我们通过创建一些文件和一个新目录来理解:


┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch 1.mp3 2.txt 3.dat
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mkdir misc
现在,让我们使用以下命令将所有这些文件移动到misc目录:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv -v 1.mp3 2.txt 3.dat misc
已重命名 '1.mp3' -> 'misc/1.mp3'
已重命名 '2.txt' -> 'misc/2.txt'
已重命名 '3.dat' -> 'misc/3.dat'
2c847a52-ac41-11ed-bfe3-dac502259ad0.png

在 Linux 中移动多个文件 重要的是要注意,要使用这种替代语法,目录必须已经存在并且它必须是命令的最后一个参数。

5. 如何在 Linux 中移动多个目录

就像文件一样,我们可以使用mv 命令一次移动多个目录。让我们用一个简单的例子来理解这一点。

首先,使用 mkdir 命令创建一些目录:


┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mkdir dir-1 dir-2 dir-3 dir-4
现在,让我们将所有这些目录移动到dir-4目录:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv -v dir-1 dir-2 dir-3 dir-4
已重命名 'dir-1' -> 'dir-4/dir-1'
已重命名 'dir-2' -> 'dir-4/dir-2'
已重命名 'dir-3' -> 'dir-4/dir-3'
2c95ed82-ac41-11ed-bfe3-dac502259ad0.png

在 Linux 中移动多个目录 在上面的输出中,我们可以看到我们能够移动所有目录。

6. 如何避免在 Linux 中覆盖文件

默认情况下,mv 命令会覆盖目标文件。有时,我们希望禁用此默认行为以避免数据丢失。

在这种情况下,我们可以使用该-n选项。

要理解这一点,首先,创建一个示例文件:


┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch file-2.txt
现在,让我们尝试使用以下命令覆盖它:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv -v -n file-1.txt file-2.txt
2ca65aa0-ac41-11ed-bfe3-dac502259ad0.png

在这里,我们可以看到详细模式没有显示任何消息。这表示file-2.txt尚未被覆盖。

7. 如何在 Linux 中交互式覆盖文件

在前面的示例中,我们看到了如何禁用文件覆盖。但是,有时我们希望以安全的方式覆盖文件。

在这种情况下,我们可以在交互模式下使用mv 命令。

在这种模式下,mv 命令会显示警告消息并在覆盖文件之前等待用户的确认。

现在,让我们尝试以交互方式覆盖file-2.txt文件:


┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv -v -i file-1.txt file-2.txt
mv: 是否覆盖 'file-2.txt'?
2cb565cc-ac41-11ed-bfe3-dac502259ad0.png

在上面的输出中,我们可以看到该命令正在等待用户的确认。就像其他 Linux 命令一样,我们可以使用它'y'来继续或'n'中止操作。

8. 仅当源较新时才覆盖文件

在前面的示例中,我们看到了如何使用交互模式覆盖文件,但是当我们要覆盖大量文件时,这种方法并不实用。

但是,我们不应该未经验证就执行覆盖操作,因为用户可能会不小心覆盖较新的文件。

在这种情况下,我们可以使用该-u选项仅在源比目标更新时执行移动操作。

为了理解这一点,让我们更新源文件的时间戳:


┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch -t 202301011000 file-1.txt
                                                                           
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ ls -l file-1.txt
-rw-r--r-- 1 linuxmi linuxmi 0  1月 1日 10:00 file-1.txt
2cc6f760-ac41-11ed-bfe3-dac502259ad0.png

在上面的示例中,我们使用 touch 命令-t的选项在file-1.txt文件上设置了较旧的时间戳。

接下来,让我们将目标文件的时间戳更新为当前时间:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch file-2.txt
最后,让我们尝试使用以下-u选项覆盖目标文件:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv -v -u file-1.txt file-2.txt
2cd82954-ac41-11ed-bfe3-dac502259ad0.png

当源文件较新时覆盖文件 在上面的输出中,我们可以看到详细模式没有显示任何消息。这表示file-2.txt尚未被覆盖。

9. 如何在覆盖文件前创建备份

在前面的几个例子中,我们看到了如何以更安全的方式覆盖目标文件。mv 命令提供了另一个选项,它允许我们使用该--backup选项指定备份策略,该策略在覆盖目标文件之前对其进行备份。



┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch file-1.txt file-2.txt
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv --backup=numbered -v file-1.txt file-2.txt
已重命名 'file-1.txt' -> 'file-2.txt'(备份:'file-2.txt.~1~')
在这里,我们使用了编号备份策略,该策略在备份文件名中使用增量编号。

为了理解这一点,让我们再执行这两个命令几次并检查输出:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch file-1.txt file-2.txt
                                                                           
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv --backup=numbered -v file-1.txt file-2.txt
已重命名 'file-1.txt' -> 'file-2.txt'(备份:'file-2.txt.~2~')
                                                                           
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch file-1.txt file-2.txt
                                                                           
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv --backup=numbered -v file-1.txt file-2.txt
已重命名 'file-1.txt' -> 'file-2.txt'(备份:'file-2.txt.~3~')
                                                                           
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ touch file-1.txt file-2.txt
                                                                           
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ mv --backup=numbered -v file-1.txt file-2.txt
已重命名 'file-1.txt' -> 'file-2.txt'(备份:'file-2.txt.~4~')
2ce83a74-ac41-11ed-bfe3-dac502259ad0.png

在覆盖文件之前创建备份 在本初学者指南中,我们讨论了如何使用mv 命令重命名和移动文件以及目录。

Linux 新手在使用 Linux 系统时,可以在日常生活中参考这些示例。

您知道 Linux 中 mv 命令的其他最佳示例吗?请在下面的评论中告诉我们您的观点。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GUI
    GUI
    +关注

    关注

    3

    文章

    610

    浏览量

    38792
  • SRC
    SRC
    +关注

    关注

    0

    文章

    60

    浏览量

    17801
  • LINUX内核
    +关注

    关注

    1

    文章

    311

    浏览量

    21389

原文标题:Linux mv 命令的正确使用姿势

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux教程:Linux Tee命令真实示例详细指南

    使用 Linux 终端时,您可能需要执行命令一些数据写入文件并进一步处理其输出。命令是一个可以帮助您实现这一目标的强大实用程序tee。 这篇文章将为您提供有关tee
    发表于 10-31 10:02 442次阅读

    Linux中grep命令的12个实际例子

    Linux中grep命令的12个实际例子
    发表于 02-08 09:38 492次阅读

    介绍一些实用的Linux命令

    作为一名软件开发人员,掌握 Linux 命令是必不可少的技能。即使你使用 Windows 或 macOS,你总会遇到需要使用 Linux 命令的场合。例如,大多数 Docker 镜像都
    发表于 08-01 16:12 189次阅读
    介绍<b class='flag-5'>一些</b>实用的<b class='flag-5'>Linux</b><b class='flag-5'>命令</b>

    Linux tcpdump命令示例 如何在Linux中安装tcpdump

    在这里,我们将展示如何安装 tcpdump,然后讨论并介绍一些有用的命令以及它们的实际示例
    发表于 08-06 11:11 2388次阅读
    <b class='flag-5'>Linux</b> tcpdump<b class='flag-5'>命令</b><b class='flag-5'>示例</b> 如何在<b class='flag-5'>Linux</b>中安装tcpdump

    分享给你一些实用的Linux技巧

    并不需要知道所有的这些东西,但是如果你还在很沉重地在使用Linux的话,这些东西都值得你看看。(注:如果你想知道下面涉及到的命令的更多的用法,你定要man
    发表于 08-21 17:13

    分享给你一些实用的Linux技巧

    并不需要知道所有的这些东西,但是如果你还在很沉重地在使用Linux的话,这些东西都值得你看看。(注:如果你想知道下面涉及到的命令的更多的用法,你定要man
    发表于 08-29 09:43

    介绍学习Linux一些建议

    、从基础开始: 常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用命令的时候,系统告诉我找
    发表于 08-18 02:17

    Linux命令详解之mv命令

    Linux mv命令 语法mv [OPTION]... [-T] SOURCE DESTmv [OPTION]... SOURCE...
    发表于 08-27 13:50

    关于运放的一些参数讨论

    简要叙说选型时的注意要点。中间有很多引荐了一些书籍、论坛的资料,不足之处还请各位指正批评。PS:本帖讨论中如果有一些错误和模棱两可的地方,还请大侠们指正。小弟虚心接受,
    发表于 10-25 09:30

    Linux下使用adb命令一些

    个很easy的任务,需要在Linux环境下连接手机,跑个脚本,听起来十分的容易,但是忙忙碌碌也是折腾了天。因此,特地记下一些中途可能踩到的坑,给自己
    发表于 07-04 06:50

    Linux系统的一些常用的基本命令分享

    Linux系统的一些常用的基本命令
    发表于 01-04 06:36

    Linux系统命令指南

    在“Linux 文件命令精通指南”中,我们讨论了利用最基础和最常用 Linux 文件命令所需的基本信息。在本文中,我将对
    发表于 05-23 10:23 881次阅读

    根据一些简单的实例来讨论 Linux rmdir 命令

    Linux 命令行上删除文件和目录,我们已经讨论过 rm 命令 的使用。然而,这里有另一个相关的命令行工具,专门针对目录的删除。这是所指
    的头像 发表于 02-23 09:42 3979次阅读
    根据<b class='flag-5'>一些</b>简单的实例来<b class='flag-5'>讨论</b> <b class='flag-5'>Linux</b> rmdir <b class='flag-5'>命令</b>

    linux实际使用中的技巧

    本文主要介绍如何使用 Github 上的开源项目 advcpmv 来实现 Linux 中的 「cp」 和 「mv命令的进度条。
    的头像 发表于 09-26 10:39 575次阅读

    Linux中的18个tar命令示例

    下面的示例命令将创建一个tar存档文件rumenz-14-09-12.tar对于目录/home/rumenz在当前工作目录中。请参阅示例命令的操作。
    的头像 发表于 05-04 14:59 632次阅读