Linux中mv命令的特殊使用方法有哪些
这篇文章主要介绍“Linux中mv命令的特殊使用方法有哪些”,在日常操作中,相信很多人在Linux中mv命令的特殊使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中mv命令的特殊使用方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
1、移动一个/多个文件;
2、移动一个/多个目录;
3、重命名文件/目录。
这些都是很基本的用法,无需赘述。下面介绍一些更高级的用法。
2、打印操作信息我们如果只移动一两个或少数几个文件/目录时,暂且还可以去目标位置去查看文件是否移动成功。但如果有千百个文件呢?如何在不去目标位置查看的情况下知道我们的操作是否已经成功了呢?我们可以加上 -v
选项。
[alvin@VM_0_16_centosmv_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_centosmv_test]$mv-ifile1.txt/home/alvin/test/mv_test/des/mv:overwrite‘/home/alvin/test/mv_test/des/file1.txt’?y4、不覆盖同名文件
如果目标位置有同名文件,我们不希望它被覆盖,可以加上 -n
选项。
[alvin@VM_0_16_centosmv_test]$ll*.txtdes/*.txt-rw-rw-r--1alvinalvin0Feb817:26file2.txt-rw-rw-r--1alvinalvin0Feb817:35file3.txt-rw-rw-r--1alvinalvin0Feb817:26des/file1.txt-rw-rw-r--1alvinalvin0Feb817:27des/file2.txt[alvin@VM_0_16_centosmv_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_centosmv_test]$lsdesfile2.txt5、使用更新选项
当目标位置有同名文件/目录时,我们只希望源文件比目标文件时间戳更新时,才进行覆盖,否则不执行。这种情况下,我们可以使用 -u 选项。
[alvin@VM_0_16_centosmv_test]$ll*.txtdes/*.txt-rw-rw-r--1alvinalvin0Feb817:26file1.txt#源文件比目标文件时间戳更新-rw-rw-r--1alvinalvin0Feb817:26file2.txt#源文件比目标文件时间戳更旧-rw-rw-r--1alvinalvin0Feb816:53des/file1.txt-rw-rw-r--1alvinalvin0Feb817:27des/file2.txt[alvin@VM_0_16_centosmv_test]$mv-uv*.txt/home/alvin/test/mv_test/des/‘file1.txt’->‘/home/alvin/test/mv_test/des/file1.txt’#只有时间戳更新的文件被替换[alvin@VM_0_16_centosmv_test]$lsdesfile2.txt6、覆盖前创建备份
目标位置已经有了同名文件,如果直接覆盖总觉得有点不踏实,万一现在的决定是错的呢?有没可能在覆盖之前,先将目标文件进行备份?答案是肯定的,加一个 -b 选项即可。
[alvin@VM_0_16_centosmv_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_centosmv_test]$lldes/total0-rw-rw-r--1alvinalvin0Feb817:41file1.txt-rw-rw-r--1alvinalvin0Feb817:26file1.txt~-rw-rw-r--1alvinalvin0Feb817:26file2.txt-rw-rw-r--1alvinalvin0Feb817:27file2.txt~-rw-rw-r--1alvinalvin0Feb817:35file3.txt
可以看到,在覆盖之前,会将目标文件备份为一个带波浪号 ~ 的文件,同时细心的读者也会注意到,覆盖后文件与备份文件的时间戳不一样。
到此,关于“Linux中mv命令的特殊使用方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。