前言
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'"color: #ff0000">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.txt5. 使用更新选项
当目标位置有同名文件/目录时,我们只希望源文件比目标文件时间戳更新时,才进行覆盖,否则不执行。这种情况下,我们可以使用 -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.txt6. 覆盖前创建备份
目标位置已经有了同名文件,如果直接覆盖总觉得有点不踏实,万一现在的决定是错的呢?有没可能在覆盖之前,先将目标文件进行备份?答案是肯定的,加一个 -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 命令的一些更高级用法,灵活使用的话会为自己的工作效率提高一个档次,在同事面前也更能装逼。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 群星《狐妖小红娘月红篇 电视剧原声带》[320K/MP3][233.61MB]
- 英雄联盟s14四强淘汰赛规则是什么 全球总决赛四强淘汰赛规则详解
- 英雄联盟s14四强赛怎么分组 S14全球总决赛四强赛分组规则详解
- 英雄联盟s14四强赛抽签规则是什么 S14全球总决赛四强抽签规则详解
- ButterQuartet-ScintillaEarlyItalianStringQuartets(DeLuxe)(2024)[24Bit-WAV]
- 草原最美情歌《迷醉女中音》2CD/DTS-ES[WAV]
- 爵士女伶何芸妮《靡靡之音》(香港版)[WAVCUE]
- 游戏中辱骂他人同样侵犯名誉权 一玩家被判道歉
- 老游戏远程共享申请失败 美国版权局拒绝豁免请愿
- 通过本地化支付解决方案,解锁150亿美元拉美和非洲游戏市场
- 群星《狐妖小红娘月红篇 电视剧原声带》[FLAC/分轨][574.68MB]
- 群星《红色冲浪板 电影配乐专辑》[320K/MP3][106.63MB]
- 罗艺恒《What Could've Been》[320K/MP3][50.62MB]
- 于台烟.1989-人间山水【银河唱片】【WAV+CUE】
- 杨克强.1992-特制的面具【恩华声视】【WAV+CUE】