Linux中mv命令的高级用法示例

 更新时间:2019年05月09日 09:50:21   作者:良许Linu  
这篇文章主要给大家介绍了关于Linux中mv命令的高级用法示例,文中通过示例代码介绍的非常详细,对大家学习或者使用Linux具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

命令格式:

mv [选项] 源文件或目录 目标文件或目录

mv 也是 Linux 下一个使用频率非常高的命令,但除了一些基本用法,你还知道它的哪些高级用法呢?

1. 基本用法

  • 移动一个/多个文件;
  • 移动一个/多个目录;
  • 重命名文件/目录。

这些都是很基本的用法,无需赘述。下面介绍一些更高级的用法。

2. 打印操作信息

我们如果只移动一两个或少数几个文件/目录时,暂且还可以去目标位置去查看文件是否移动成功。但如果有千百个文件呢?如何在不去目标位置查看的情况下知道我们的操作是否已经成功了呢?我们可以加上 -v 选项。

[alvin@VM_0_16_centos mv_test]$ mv -v *.txt /home/alvin/test/mv_test/des/
‘file1.txt' -> ‘/home/alvin/test/mv_test/des/file1.txt'
‘file2.txt' -> ‘/home/alvin/test/mv_test/des/file2.txt'
‘file3.txt' -> ‘/home/alvin/test/mv_test/des/file3.txt'
‘file4.txt' -> ‘/home/alvin/test/mv_test/des/file4.txt'
‘file5.txt' -> ‘/home/alvin/test/mv_test/des/file5.txt'

当然,此方法同样适用于移动目录。

3. 使用交互模式

在默认情况下,我们移动文件/目录时,不会有任何提示。如果在目标位置我们有个相同名字的文件/目录,mv 命令也不会提示而直接替换原来的文件。而这样的操作,有时可能会造成灾难性的后果。

在这种情况下,我们可以加一个 -i 选项,当目标位置有相同名字的文件时,它将会进行提示。如果你确认要覆盖目标文件,键入 y 即可。

[alvin@VM_0_16_centos mv_test]$ mv -i file1.txt /home/alvin/test/mv_test/des/
mv: overwrite ‘/home/alvin/test/mv_test/des/file1.txt'? y

4. 不覆盖同名文件

如果目标位置有同名文件,我们不希望它被覆盖,可以加上 -n 选项。

[alvin@VM_0_16_centos mv_test]$ ll *.txt des/*.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 file2.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:35 file3.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 des/file1.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:27 des/file2.txt
[alvin@VM_0_16_centos mv_test]$ mv -nv *.txt /home/alvin/test/mv_test/des/
‘file3.txt' -> ‘/home/alvin/test/mv_test/des/file3.txt' #目标位置没有file3.txt文件,所以成功移动
[alvin@VM_0_16_centos mv_test]$ ls
des file2.txt

5. 使用更新选项

当目标位置有同名文件/目录时,我们只希望源文件比目标文件时间戳更新时,才进行覆盖,否则不执行。这种情况下,我们可以使用 -u 选项。

[alvin@VM_0_16_centos mv_test]$ ll *.txt des/*.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 file1.txt #源文件比目标文件时间戳更新
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 file2.txt #源文件比目标文件时间戳更旧
-rw-rw-r-- 1 alvin alvin 0 Feb 8 16:53 des/file1.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:27 des/file2.txt
[alvin@VM_0_16_centos mv_test]$ mv -uv *.txt /home/alvin/test/mv_test/des/
‘file1.txt' -> ‘/home/alvin/test/mv_test/des/file1.txt' #只有时间戳更新的文件被替换
[alvin@VM_0_16_centos mv_test]$ ls
des file2.txt

6. 覆盖前创建备份

目标位置已经有了同名文件,如果直接覆盖总觉得有点不踏实,万一现在的决定是错的呢?有没可能在覆盖之前,先将目标文件进行备份?答案是肯定的,加一个 -b 选项即可。

[alvin@VM_0_16_centos mv_test]$ mv -bv *.txt /home/alvin/test/mv_test/des/
‘file1.txt' -> ‘/home/alvin/test/mv_test/des/file1.txt' (backup: ‘/home/alvin/test/mv_test/des/file1.txt~')
‘file2.txt' -> ‘/home/alvin/test/mv_test/des/file2.txt' (backup: ‘/home/alvin/test/mv_test/des/file2.txt~')
[alvin@VM_0_16_centos mv_test]$ ll des/
total 0
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:41 file1.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 file1.txt~
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:26 file2.txt
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:27 file2.txt~
-rw-rw-r-- 1 alvin alvin 0 Feb 8 17:35 file3.txt

可以看到,在覆盖之前,会将目标文件备份为一个带波浪号 ~ 的文件,同时细心的读者也会注意到,覆盖后文件与备份文件的时间戳不一样。

以上就是 mv 命令的一些更高级用法,灵活使用的话会为自己的工作效率提高一个档次,在同事面前也更能装逼。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

相关文章

  • CentOS设置精准时间的方法

    CentOS设置精准时间的方法

    下面小编就为大家分享一篇CentOS设置精准时间的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Ubuntu彻底卸载MySQL、Apache2和Php的方法教程

    Ubuntu彻底卸载MySQL、Apache2和Php的方法教程

    这篇文章主要给大家介绍了关于在Ubuntu系统下彻底卸载MySQL、Apache2和Php的方法教程,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起看看吧。
    2017-08-08
  • linux下使用Apache搭建文件服务器的步骤

    linux下使用Apache搭建文件服务器的步骤

    这篇文章主要介绍了linux下使用Apache搭建文件服务器的步骤,帮助大家更好的搭建服务器,感兴趣的朋友可以了解下
    2020-12-12
  • Linux编译优化必须掌握的几个姿势总结

    Linux编译优化必须掌握的几个姿势总结

    内核是操作系统的核心,也是操作系统最基本的部分。下面这篇文章主要给大家总结介绍了关于Linux编译优化必须掌握的几个姿势,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-09-09
  • 解决SSH连接超时的2个配置方法

    解决SSH连接超时的2个配置方法

    用SSH客户端连接linux服务器时,经常会出现与服务器会话连接中断现象,照成这个问题的原因便是SSH服务有自己独特的会话连接机制。
    2014-04-04
  • 在CentOS 6 中安装 WordPress(二)安装WordPress

    在CentOS 6 中安装 WordPress(二)安装WordPress

    上篇文章我们介绍了WordPress环境的配置,本文我们就来详细讲解下WordPress的安装,适合新手,高手们请勿拍砖
    2014-06-06
  • CentOS MySQL 5.7编译安装步骤详细说明

    CentOS MySQL 5.7编译安装步骤详细说明

    这篇文章主要介绍了CentOS MySQL 5.7编译安装详细介绍的相关资料,这里对安装步骤进行了详细介绍,需要的朋友可以参考下
    2016-12-12
  • 开启Apache mod_rewrite模块示例代码

    开启Apache mod_rewrite模块示例代码

    这篇文章主要介绍了如何开启Apache mod_rewrite模块,需要的朋友可以参考下
    2014-03-03
  • 详解Linux系统中网卡MAC地址克隆方法

    详解Linux系统中网卡MAC地址克隆方法

    本篇文章主要介绍了详解Linux系统中网卡MAC地址克隆方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • linux Ubuntu下SSH无密码验证配置的方法步骤

    linux Ubuntu下SSH无密码验证配置的方法步骤

    这篇文章主要介绍了linux Ubuntu下实现SSH无密码验证配置的方法步骤,文中给出了详细的步骤介绍,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02

最新评论