时间:2020-08-19来源:www.pcxitongcheng.com作者:电脑系统城
mv 也是 Linux 下一个使用频率非常高的命令,但除了一些基本用法,你还知道它的哪些高级用法呢?
这些都是很基本的用法,无需赘述。下面介绍一些更高级的用法。
我们如果只移动一两个或少数几个文件/目录时,暂且还可以去目标位置去查看文件是否移动成功。但如果有千百个文件呢?如何在不去目标位置查看的情况下知道我们的操作是否已经成功了呢?我们可以加上 -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’
当然,此方法同样适用于移动目录。
在默认情况下,我们移动文件/目录时,不会有任何提示。如果在目标位置我们有个相同名字的文件/目录,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
如果目标位置有同名文件,我们不希望它被覆盖,可以加上 -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
当目标位置有同名文件/目录时,我们只希望源文件比目标文件时间戳更新时,才进行覆盖,否则不执行。这种情况下,我们可以使用 -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
目标位置已经有了同名文件,如果直接覆盖总觉得有点不踏实,万一现在的决定是错的呢?有没可能在覆盖之前,先将目标文件进行备份?答案是肯定的,加一个 -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 命令的一些更高级用法,灵活使用的话会为自己的工作效率提高一个档次,在同事面前也更能装逼。
2024-07-18
Centos 7 二进制安装配置 MariaDB数据库2024-07-18
Centos7默认firewalld防火墙使用命令大全2024-07-07
四种执行python系统命令的方法常用权限linux系统内有档案有三种身份 u:拥有者 g:群组 o:其他人这些身份对于文档常用的有下面权限:r:读权限,用户可以读取文档的内容,如用cat,more查看w:写权限,用户可以编辑文档x...
2024-07-07
然而,如果我们遵循通常的 WordPress 最佳实践,这些安全问题可以避免。在本篇中,我们会向你展示如何使用 WPSeku,一个 Linux 中的 WordPress 漏洞扫描器,它可以被用来找出你安装...
2024-07-03