乐趣区

关于linux:Linux下mv命令高级用法

mv 也是 Linux 下一个应用频率十分高的命令,但除了一些根本用法,你还晓得它的哪些高级用法呢?

1. 根本用法

  1. 挪动一个 / 多个文件;
  2. 挪动一个 / 多个目录;
  3. 重命名文件 / 目录。

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

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 命令的一些更高级用法,灵便应用的话会为本人的工作效率进步一个品位,在共事背后也更能装逼。


最初,最近很多小伙伴找我要 Linux 学习路线图 ,于是我依据本人的教训,利用业余时间熬夜肝了一个月,整顿了一份电子书。无论你是面试还是自我晋升,置信都会对你有帮忙!

收费送给大家,只求大家金指给我点个赞!

电子书 | Linux 开发学习路线图

也心愿有小伙伴能退出我,把这份电子书做得更完满!

有播种?心愿老铁们来个三连击,给更多的人看到这篇文章

举荐浏览:

  • 干货 | 程序员进阶架构师必备资源免费送
  • 神器 | 反对搜寻的资源网站
退出移动版