阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux -mv命令的10个实用例子

33次阅读
没有评论

共计 2372 个字符,预计需要花费 6 分钟才能阅读完成。

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

Linux -mv 命令的 10 个实用例子

1. 移动文件

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

$ mv file_1.txt /home/pungki/office

Linux -mv 命令的 10 个实用例子
如我们所见,当我们移动 file_1.txt 文件时,先前目录的 file_1.txt 就被删除了。

2. 移动多个文件

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

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

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

$ mv *.txt /home/pungki/office

Linux -mv 命令的 10 个实用例子

3. 移动目录

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

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

Linux -mv 命令的 10 个实用例子

5. 重命名目录

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

$ mv directory_1/ directory_2/

Linux -mv 命令的 10 个实用例子

6. 打印移动信息

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

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

Linux -mv 命令的 10 个实用例子
该方法同样适用于目录。
Linux -mv 命令的 10 个实用例子

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

Linux -mv 命令的 10 个实用例子
这个提示会让我们知道目标位置处 file_1.txt 的存在。如果我们按 y 键,那么那个文件将会被删除,否则不会。

8. 使用更新选项

-i 选项会提示我们关于覆盖文件的提示,而 -u 则只在源文件比目标文件新时才执行更新。让我们看一看下面的例子:
Linux -mv 命令的 10 个实用例子
假如 file_1.txt 和 file_2.txt 有如下特点:

File_1.txt has 84 bytes file size and it last modified time is 12:00
File_2.txt has 0 bytes file size and it last modified time is 11: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

Linux -mv 命令的 10 个实用例子

10. 复制时创建备份

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

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

Linux -mv 命令的 10 个实用例子
如截图中所见,在 /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 的手册页以了解更多详细信息。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计2372字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中