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

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

3天内不再提示

基于Linux的mv 指令移动文件和目录命令

Linux爱好者 2017-12-31 00:57 次阅读

熟悉了复制命令,下一个相关的命令就是 mv 命令。当你想要将文件从一个位置移动到另一个地方并且不想复制它,那么mv 命令是完成这个任务的首选。

初识 mv 命令

mv 命令是一个与cp类似的命令,但是它并非创建文件或目录的复制品/副本。不管你在使用什么版本的Linux系统,mv 都默认安装在你的Linux系统上了。来看一下 mv 命令在日常操作中的一些例子。

1.移动文件

移动文件时需要注意的是文件的源地址和目标地址必须不同。这里有个例子,想要将file_1.txt文件从当前目录移动到其它目录,以/home/pungki/为例,语法应该如下:

$ mv file_1.txt /home/pungki/office

01010140P-1.png

如我们所见,当我们移动 file_1.txt 文件时,先前目录的 file_1.txt 就被删除了。

2.移动多个文件

如果想一次移动多个文件,我们可以将他们放在一行并用空格分开。

$ mv file_2.txt file_3.txt file_4.txt /home/pungki/office

0101015442-2.png

如果你的文件有规律可循的话那么你就可以使用通配符。比如,为了移除所有以.txt为扩展名的文件,我们可以用下面的命令:

$ mv *.txt /home/pungki/office

0101012927-3.png

3.移动目录

不同于复制命令,用 mv 命令移动目录相当直接。移动目录你可以使用不带选项的 mv 命令。看下面的截图就一目了然了。

01010115I-4.png

4.重命名文件或目录

我们也用 mv 命令来重命名文件或目录。不过目标位置和源位置必须相同才可以。然后文件名必须不同。

假定我们当前所在目录为/home/pungki/Documents,而我们想将file_1.txt重命名为file_2.txt。那么命令应该如下:

$ mv file_1.txt file_2.txt

如果是绝对路径,它应该像下面这样:

$ mv /home/pungki/Documents/file_1.txt /home/pungki/Documents/file_2.txt

010101J62-5.png

5. 重命名目录

上一段的规则同样适用于目录。请看这个例子:

$ mv directory_1/ directory_2/

0101011011-6.png

6. 打印移动信息

当你移动或重命名一大堆文件或目录时,你可能会想在不去目标位置去查看的情况下知道你自己的命令是否成功地执行了。这就要用到-v选项了。

$ mv -v *.txt /home/pungki/office

01010132G-7.png

该方法同样适用于目录。

0101016027-8.png

7. 使用交互模式

当你将文件移动到其它位置,而那个位置恰好有同样的文件,这时 mv 命令会覆盖掉原来的文件。对于mv的这一行为一般不会有什么提示。如果想产生一个关于覆盖文件的提示,我们可以使用-i选项。(译注:通常发行版会通过alias命令,将-i作为默认选项,所以会有提示。)

假设我们想将 file_1.txt 移动到 /home/pungki/office。同时,/home/pungki/office 目录下已经有file_1.txt文件了。

$ mv -i file_1.txt /home/pungki/office

01010124G-9.png

这个提示会让我们知道目标位置处file_1.txt的存在。如果我们按y键,那么那个文件将会被删除,否则不会。

8. 使用更新选项

-i 选项会提示我们关于覆盖文件的提示,而 -u 则只在源文件比目标文件新时才执行更新。让我们看一看下面的例子:

010101O21-10.png

假如 file_1.txt 和 file_2.txt有如下特点:

File_1.txt has84bytes file size andit last modified time is12:00

File_2.txt has0bytes file size andit last modified time is11:59

我们想将它们移动到 /home/pungki/office 目录下。但是目标地址已经有file_1.txt和file_2.txt了。

我们用下面的命令将file_1.txt 和file_2.txt从当前目录移动到/home/pungki/office

$ mv -uv *.txt /home/pungki/office

可以看到这些文件被移动了。能移动这些文件是因为它们最近的修改时间戳比 /home/pungki/office 目录中的文件新。

9.不要覆盖任何已存在的文件

如果-i选项询问我们是否要覆盖文件,那么 -n 选项将不会允许我们覆盖任何已存在的文件。

继续使用第8点中的例子,如果我们将-u 换成 -n同时加上-v选项,那么我们会看到没有任何文件移动到了 /home/pungki/office 目录下。

$ mv -vn *.txt /home/pungki/office

010101F63-11.png

10. 复制时创建备份

默认情况下,移动文件将会覆盖已存在的目标文件。但是如果我们移动错了文件而目标文件已经被新的文件覆盖了,这时应该怎么办才好呢?有没有一种方法可以恢复之前的文件呢?答案是肯定的。我们可以用-b选项。该选项会在新文件覆盖旧文件时将旧文件做备份。这里我们还以第8点为例。

$ mv -bv *.txt /home/pungki/office

如截图中所见,在 /home/pungki/office 目录下出现了名为file_1.txt~和file_2.txt~的文件。那个波浪符号(~)意味着这些文件是备份文件。从它们的属性中我们可以看到,这些文件比file_1.txt和file_2.txt要旧。

11. 无条件覆盖已经存在的文件

(译注:这一节是译者补充的,原文遗漏了这个重要选项)

当你希望无论如何都覆盖已经存在的文件或目录时,你可以使用 -f 选项。如果同时指定了 -f 选项和 -i 或 -n 选项,则 -f 选项会覆盖它们——即不进行任何提示而覆盖,所以,在使用此参数时,知道你在做什么。

$ mv -f *.txt /home/pungki/office

总结

移动文件和目录命令是Linux系统的基本命令。通常你可以通过man mv 或者 mv –help显示mv的手册页以了解更多详细信息。

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

    关注

    0

    文章

    4

    浏览量

    8793
  • linxu
    +关注

    关注

    0

    文章

    7

    浏览量

    2545

原文标题:Linux 移动或重命名文件/目录-mv 的10个实用例子

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

收藏 人收藏

    评论

    相关推荐

    如何在Linux使用rm删除文件目录

    rm命令用于删除文件目录。它是每个Linux用户都应该熟悉的基本命令之一。
    发表于 12-08 16:49 2538次阅读

    Linux命令详解之mv命令

    DIRECTORY SOURCE...参数说明:Linux mv命令 参数如下所示:-b : 若需覆盖文件,则覆盖前先行备份。 -f : force 强制的意思,如果目标
    发表于 08-27 13:50

    Linux文件的复制、删除和移动命令

    Linux文件的复制、删除和移动命令 Linux文件的复制、删除和
    发表于 01-18 12:45 1246次阅读

    Linux目录的创建与删除命令

    Linux目录的创建与删除命令 Linux目录的创建与删除命令  mkdir
    发表于 01-18 12:46 1310次阅读

    Linux改变文件目录的访问权限命令

    Linux改变文件目录的访问权限命令 Linux改变文件
    发表于 01-18 12:46 1197次阅读

    如何使用cp和rsync命令复制文件目录

    复制文件目录是在使用命令行时最常见的任务之一。在Linux,有两个命令用于复制文件cp和rsy
    的头像 发表于 12-07 17:39 6870次阅读

    如何在Linux使用wc命令统计目录文件

    尽管不是很经常需要知道,但有时您需要找出指定目录中有多少个文件。例如,Linux系统inodes用完,则需要查找哪个目录包含成千上万个文件
    的头像 发表于 12-09 16:48 1793次阅读

    Linux rename命令重命名多个文件目录

    使用`mv`命令重命名多个文件目录可能是一个乏味的过程,因为它涉及使用管道,循环等编写复杂的命令
    的头像 发表于 12-09 17:41 2969次阅读

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

    mv 命令的最基本用途是重命名文件。那么让我们看看如何重命名当前目录中的文件
    的头像 发表于 02-14 16:28 648次阅读

    Linux文件目录快速自动跳转命令

    那些主要通过控制台/终端使用 Linux 命令行的 Linux 用户应该感受到了 Linux 的真正力量。然而,对于新手来说,导航 Linux
    的头像 发表于 05-06 10:16 943次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>文件</b><b class='flag-5'>目录</b>快速自动跳转<b class='flag-5'>命令</b>

    恒讯科技分析:如何在Linux上使用rm命令删除文件目录

    本指南展示了如何在Linux中使用rm命令行删除文件目录和其他内容?
    的头像 发表于 06-09 17:02 1152次阅读

    恒讯科技分析:如何使用cp命令Linux中复制目录

    复制目录Linux中的一项基本任务,它允许我们复制目录、创建备份或在不同位置之间传输数据。在Linux中复制文件
    的头像 发表于 06-26 17:14 663次阅读

    linux系统基本操作命令

    Linux系统基本操作命令有很多,以下是一些常用的命令: ls :列出目录内容。 cd :改变当前目录。 mkdir :创建
    的头像 发表于 11-08 11:17 1716次阅读

    linux删除文件命令rm

    Linux系统中,可以使用rm命令来删除文件目录。该命令的功能是删除一个目录中的一个或多个
    的头像 发表于 11-13 16:42 852次阅读

    总结linux命令行的主要用法

    目录操作、权限管理、进程管理等内容。 1.常用命令 1.1 文件目录操作 文件目录
    的头像 发表于 11-17 10:19 617次阅读