Linux移动⽂件与⽬录-mv命令的10个实⽤例⼦
mv 命令
mv 命令是⼀个与cp类似的命令,但是它并⾮创建⽂件或⽬录的复制品/副本。不管你在使⽤什么版本的Linux系统,mv 都默认安装在你的Linux系统上了。
来看⼀下 mv 命令在⽇常操作中的⼀些例⼦。
1.移动⽂件
移动⽂件时需要注意的是⽂件的源地址和⽬标地址必须不同。这⾥有个例⼦,想要将⽂件从当前⽬录移动到其它⽬录,以/home/pungki/为例,语法应该如下:
$ mv /home/pungki/office
如我们所见,当我们移动 ⽂件时,先前⽬录的 就被删除了。
2.移动多个⽂件
如果想⼀次移动多个⽂件,我们可以将他们放在⼀⾏并⽤空格分开。
$ mv /home/pungki/office
如果你的⽂件有规律可循的话那么你就可以使⽤通配符。⽐如,为了移除所有以.txt为扩展名的⽂件,我们可以⽤下⾯的命令:
$ mv *.txt /home/pungki/office
3.移动⽬录
不同于复制命令,⽤ mv 命令移动⽬录相当直接。移动⽬录你可以使⽤不带选项的 mv 命令。看下⾯的截图就⼀⽬了然了。
4.重命名⽂件或⽬录
我们也⽤ mv 命令来重命名⽂件或⽬录。不过⽬标位置和源位置必须相同才可以。然后⽂件名必须不同。
假定我们当前所在⽬录为/home/pungki/Documents,⽽我们想将重命名为。那么命令应该如下:
$ mv
如果是绝对路径,它应该像下⾯这样:
$ mv /home/pungki/Documents/ /home/pungki/Documents/
5. 重命名⽬录
上⼀段的规则同样适⽤于⽬录。请看这个例⼦:
$ mv directory_1/ directory_2/
6. 打印移动信息
当你移动或重命名⼀⼤堆⽂件或⽬录时,你可能会想在不去⽬标位置去查看的情况下知道你⾃⼰的命令是否成功地执⾏了。这就要⽤到-v选项了。
$ mv -v *.txt /home/pungki/office
该⽅法同样适⽤于⽬录。
7. 使⽤交互模式
当你将⽂件移动到其它位置,⽽那个位置恰好有同样的⽂件,这时 mv 命令会覆盖掉原来的⽂件。对于mv的这⼀⾏为⼀般不会有什么提⽰。如果想产⽣⼀个关于覆盖⽂件的提⽰,我们可以使⽤-i选项。(译注:通常发⾏版会通过alias命令,将-i作为默认选项,所以会有提⽰。)
假设我们想将 移动到 /home/pungki/office。同时,/home/pungki/office ⽬录下已经有⽂件了。
$ mv -i /home/pungki/office
cp复制文件到指定目录下这个提⽰会让我们知道⽬标位置处的存在。如果我们按y键,那么那个⽂件将会被删除,否则不会。
8. 使⽤更新选项
-i 选项会提⽰我们关于覆盖⽂件的提⽰,⽽ -u 则只在源⽂件⽐⽬标⽂件新时才执⾏更新。让我们看⼀看下⾯的例⼦:
假如 和 有如下特点:
has 84 bytes file size and it last modified time is 12:00
has 0 bytes file size and it last modified time is 11:59
我们想将它们移动到 /home/pungki/office ⽬录下。但是⽬标地址已经有和了。
我们⽤下⾯的命令将 和从当前⽬录移动到/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
10. 复制时创建备份
默认情况下,移动⽂件将会覆盖已存在的⽬标⽂件。但是如果我们移动错了⽂件⽽⽬标⽂件已经被新的⽂件覆盖了,这时应该怎么办才好呢?有没有⼀种⽅法可以恢复之前的⽂件呢?答案是肯定的。我们可以⽤-b选项。该选项会在新⽂件覆盖旧⽂件时将旧⽂件做备份。这⾥我们还以第8点为例。
$ mv -bv *.txt /home/pungki/office
如截图中所见,在 /home/pungki/office ⽬录下出现了名为~ 和 ~ 的⽂件。那个波浪符号(~)意味着这些⽂件是备份⽂件。从它们的属性中我们可以看到,这些⽂件⽐和要旧。
11. ⽆条件覆盖已经存在的⽂件
(译注:这⼀节是译者补充的,原⽂遗漏了这个重要选项)
当你希望⽆论如何都覆盖已经存在的⽂件或⽬录时,你可以使⽤ -f 选项。如果同时指定了 -f 选项和 -i 或 -n 选项,则 -f 选项会覆盖它们——即不进⾏任何提⽰⽽覆盖,所以,在使⽤此参数时,知道你在做什么。
$ mv -f *.txt /home/pungki/office
总结
移动⽂件和⽬录命令是Linux系统的基本命令。通常你可以通过man mv 或者 mv --help显⽰mv的⼿册页以了解更多详细信息。以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作能带来⼀定的帮助,如果有疑问⼤家可以留⾔交流。
译者:Linchenguang 校对:wxy
本⽂由 LCTT 原创翻译,Linux中国荣誉推出

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。