Linux中的文件与目录操作利器mv命令使用解析
mv 命令是一个与cp类似的命令,但是它并非创建文件或目录的复制品/副本。不管你在使用什么版本的Linux系统,mv 都默认安装在你的Linux系统上了。
用法:mv [选项]… [-T] 源文件 目标文件 或:mv [选项]… 源文件… 目录 或:mv [选项]… -t 目录 源文件…将源文件重命名为目标文件,或将源文件移动至指定目录。
长选项必须使用的参数对于短选项时也是必需使用的。 –backup[=CONTROL] 为每个已存在的目标文件创建备份 -b 类似–backup 但不接受参数 -f, –force 覆盖前不询问 -i, –interactive 覆盖前询问 -n, –no-clobber 不覆盖已存在文件如果您指定了-i、-f、-n 中的多个,仅最后一个生效。 –strip-trailing-slashes 去掉每个源文件参数尾部的斜线 -S, –suffix=SUFFIX 替换常用的备份文件后缀 -t, –target-directory=DIRECTORY 将所有参数指定的源文件或目录 移动至 指定目录 -T, –no-target-directory 将目标文件视作普通文件处理 -u, –update 只在源文件文件比目标文件新,或目标文件 不存在时才进行移动 -v, –verbose 详细显示进行的步骤 –help 显示此帮助信息并退出 –version 显示版本信息并退出
备份文件的后缀为"~",除非以–suffix 选项或是SIMPLE_BACKUP_SUFFIX环境变量指定。版本控制的方式可通过–backup 选项或VERSION_CONTROL 环境变量来选择。以下是可用的变量值:
none, off 不进行备份(即使使用了–backup 选项) numbered, t 备份文件加上数字进行排序 existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份 simple, never 永远使用普通方式备份
使用示例
1.移动文件
移动文件时需要注意的是文件的源地址和目标地址必须不同。这里有个例子,想要将file_1.txt文件从当前目录移动到其它目录,以/home/pungki/为例,语法应该如下:
代码如下:
如我们所见,当我们移动 filetxt 文件时,先前目录的 file1.txt 就被删除了。
2.移动多个文件
如果想一次移动多个文件,我们可以将他们放在一行并用空格分开。
代码如下:
如果你的文件有规律可循的话那么你就可以使用通配符。比如,为了移除所有以.txt为扩展名的文件,我们可以用下面的命令:
代码如下:
3.移动目录
不同于复制命令,用 mv 命令移动目录相当直接。移动目录你可以使用不带选项的 mv 命令。看下面的截图就一目了然了。
4.重命名文件或目录
我们也用 mv 命令来重命名文件或目录。不过目标位置和源位置必须相同才可以。然后文件名必须不同。
假定我们当前所在目录为/home/pungki/Documents,而我们想将file1.txt重命名为file2.txt。那么命令应该如下:
代码如下:
如果是绝对路径,它应该像下面这样:
代码如下:
5. 重命名目录
上一段的规则同样适用于目录。请看这个例子:
代码如下:
6. 打印移动信息
当你移动或重命名一大堆文件或目录时,你可能会想在不去目标位置去查看的情况下知道你自己的命令是否成功地执行了。这就要用到-v选项了。
代码如下:
该方法同样适用于目录。
7. 使用交互模式
当你将文件移动到其它位置,而那个位置恰好有同样的文件,这时 mv 命令会覆盖掉原来的文件。对于mv的这一行为一般不会有什么提示。如果想产生一个关于覆盖文件的提示,我们可以使用-i选项。(译注:通常发行版会通过alias命令,将-i作为默认选项,所以会有提示。)
假设我们想将 file1.txt 移动到 /home/pungki/office。同时,/home/pungki/office 目录下已经有file1.txt文件了。
代码如下:
这个提示会让我们知道目标位置处file_1.txt的存在。如果我们按y键,那么那个文件将会被删除,否则不会。
8. 使用更新选项
-i 选项会提示我们关于覆盖文件的提示,而 -u 则只在源文件比目标文件新时才执行更新。让我们看一看下面的例子:
假如 file1.txt 和 file2.txt有如下特点:
代码如下:
我们想将它们移动到 /home/pungki/office 目录下。**但是目标地址*已经有file1.txt和file2.txt了。
我们用下面的命令将file1.txt 和file2.txt从当前目录移动到/home/pungki/office
代码如下:
可以看到这些文件被移动了。能移动这些文件是因为它们最近的修改时间戳比 /home/pungki/office 目录中的文件新。
9.不要覆盖任何已存在的文件
如果-i选项询问我们是否要覆盖文件,那么 -n 选项将不会允许我们覆盖任何已存在的文件。
继续使用第8点中的例子,如果我们将-u 换成 -n同时加上-v选项,那么我们会看到没有任何文件移动到了 /home/pungki/office 目录下。
代码如下:
10. 复制时创建备份
默认情况下,移动文件将会覆盖已存在的目标文件。但是如果我们移动错了文件而目标文件已经被新的文件覆盖了,这时应该怎么办才好呢?有没有一种方法可以恢复之前的文件呢?答案是肯定的。我们可以用-b选项。该选项会在新文件覆盖旧文件时将旧文件做备份。这里我们还以第8点为例。
代码如下:
如截图中所见,在 /home/pungki/office 目录下出现了名为file1.txt~ and file2.txt~ 的文件。那个波浪符号(~)意味着这些文件是备份文件。从它们的属性中我们可以看到,这些文件比file1.txt和file2.txt要旧。
11. 无条件覆盖已经存在的文件
当你希望无论如何都覆盖已经存在的文件或目录时,你可以使用 -f 选项。如果同时指定了 -f 选项和 -i 或 -n 选项,则 -f 选项会覆盖它们——即不进行任何提示而覆盖,所以,在使用此参数时,知道你在做什么。
代码如下:
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » Linux中的文件与目录操作利器mv命令使用解析
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 织梦模板使用说明
- 你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html