Linux(Centos 7.6)命令详解:mv

1.命令作用

将源文件/目录重命名为目标文件/目录,或将源文件/目录移动到其他目录(Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.)。

2.命令语法

Usage: mv [OPTION]... [-T] SOURCE DEST
       or:  mv [OPTION]... SOURCE... DIRECTORY
       or:  mv [OPTION]... -t DIRECTORY SOURCE...

3.参数详解

OPTION:

  • --backup[=CONTROL],对每个已经存在的目标文件进行备份,CONTROL可设置如下参数:
    • none, off,永远不要做备份(即使提供了--backup参数)
    • numbered, t,进行编号备份
    • existing, nil,如果存在编号备份,则编号,否则简单
    • simple, never,总是做简单的备份
    • 备份名后缀,默认为'~'符号,除非使用--suffix进行设置(实际测试无明显效果)
  • -b,类似于--backup,但-b不接受任何参数,即只能进行简单备份
  • -f, --force,重写前不提示;即目标文件已经存在的情况下直接覆盖
  • -i, --interactive,覆盖前提示;即目标文件已经存在的情况下会提示是否覆盖
  • -n, --no-clobber,不覆盖现有文件;即如目标文件已经存在,执行不报错也不会做任何操作
  • --strip-trailing-slashes,从每个SOURCE参数中删除任何尾随斜杠
  • -S, --suffix=SUFFIX,与--backup命令一起使用时,指定/覆盖默认的备份名后缀(无明显效果)
  • -t, --target-directory=DIRECTORY,将所有源文件/目录移动到-t参数指定的目录中
  • -T, --no-target-directory,将DEST视为普通文件
  • -u, --update,仅在源文件比目标文件版本更新,或目标文件缺失/不存在时移动或重命名
  • -v, --verbose,解释正在做什么
  • -Z, --context,将目标文件的SELinux安全上下文设置为默认类型(无明显效果)

注意:如果指定了-i、-f、-n中的多个,则仅最后一个生效。

4.常用用例

4.1.重命名文件或者目录

[root@node2 Desktop]# ll
total 0
drwxr-xr-x. 2 root root 6 Feb 23 16:39 dir1
-rw-r--r--. 1 root root 0 Feb 23 16:39 file1.txt
[root@node2 Desktop]# mv dir1 dir2             ## 将目录dir1重命名为dir2 
[root@node2 Desktop]# mv file1.txt file2.txt   ## 将文件file1.txt重命名为file2.txt
[root@node2 Desktop]# ll                       ## 查看重命名后目录文件情况
total 0
drwxr-xr-x. 2 root root 6 Feb 23 16:39 dir2
-rw-r--r--. 1 root root 0 Feb 23 16:39 file2.txt
[root@node2 Desktop]# 

4.2.移动文件或目录

[root@node2 Desktop]# ll
total 0
drwxr-xr-x. 2 root root 6 Feb 23 16:40 dir1
drwxr-xr-x. 2 root root 6 Feb 23 16:39 dir2
-rw-r--r--. 1 root root 0 Feb 23 16:39 file2.txt
[root@node2 Desktop]# mv dir2 dir1        ## 将目录dir2移动到目录dir1中
[root@node2 Desktop]# mv file2.txt dir1   ## 将文件file2.txt移动到目录dir1中
[root@node2 Desktop]# ll                  ## 查看移动后的目录文件情况
total 0
drwxr-xr-x. 3 root root 35 Feb 23 16:40 dir1
[root@node2 Desktop]# ll dir1
total 0
drwxr-xr-x. 2 root root 6 Feb 23 16:39 dir2
-rw-r--r--. 1 root root 0 Feb 23 16:39 file2.txt
[root@node2 Desktop]# 

4.3.重命名目标文件已存在的各自处理

4.3.1.提示是否覆盖

[root@node2 Desktop]# ll
total 0
-rw-r--r--. 1 root root 0 Feb 23 16:44 file1.txt
-rw-r--r--. 1 root root 0 Feb 23 16:44 file2.txt
[root@node2 Desktop]# mv file1.txt file2.txt     ## 默认提示是否覆盖,输入y直接覆盖,输入n或者其他不做任何操作
mv: overwrite ‘file2.txt’? y
[root@node2 Desktop]# ll
total 0
-rw-r--r--. 1 root root 0 Feb 23 16:44 file2.txt
[root@node2 Desktop]# 

#####################################################################################

[root@node2 Desktop]# ll
total 0
-rw-r--r--. 1 root root 0 Feb 23 16:46 file1.txt
-rw-r--r--. 1 root root 0 Feb 23 16:46 file2.txt
[root@node2 Desktop]# mv -i file1.txt file2.txt   ## -i参数提示是否覆盖
mv: overwrite ‘file2.txt’? y
[root@node2 Desktop]# ll
total 0
-rw-r--r--. 1 root root 0 Feb 23 16:46 file2.txt
[root@node2 Desktop]# 

4.3.2.强制覆盖

[root@node2 Desktop]# ll
total 0
-rw-r--r--. 1 root root 0 Feb 23 16:48 file1.txt
-rw-r--r--. 1 root root 0 Feb 23 16:48 file2.txt
[root@node2 Desktop]# mv -f file1.txt file2.txt   ## -f参数,直接强制覆盖,不做提示
[root@node2 Desktop]# ll
total 0
-rw-r--r--. 1 root root 0 Feb 23 16:48 file2.txt
[root@node2 Desktop]# 

4.3.3.备份覆盖

[root@node2 Desktop]# ll
total 8
-rw-r--r--. 1 root root 57 Feb 23 16:51 file1.txt
-rw-r--r--. 1 root root  7 Feb 23 16:51 file2.txt
[root@node2 Desktop]# mv --backup=t file1.txt file2.txt   ## 将file2.txt进行备份,然后file1.txt重命名为file2.txt
mv: overwrite ‘file2.txt’? y
[root@node2 Desktop]# ll                                  ## 查看两个文件大小可观察备份的与重命名的文件
total 8
-rw-r--r--. 1 root root 57 Feb 23 16:51 file2.txt
-rw-r--r--. 1 root root  7 Feb 23 16:51 file2.txt.~1~
[root@node2 Desktop]# 

4.3.4.根据文件修改时间来判定是否执行

[root@node2 Desktop]# ll   
total 8
-rw-r--r--. 1 root root 57 Feb 23 16:51 file1.txt
-rw-r--r--. 1 root root 57 Feb 23 16:54 file2.txt
[root@node2 Desktop]# mv -u file1.txt file2.txt  ## 看时间文件file2.txt比file1.txt新,所以执行不做任何操作
[root@node2 Desktop]# ll
total 8
-rw-r--r--. 1 root root 57 Feb 23 16:51 file1.txt
-rw-r--r--. 1 root root 57 Feb 23 16:54 file2.txt
[root@node2 Desktop]# 
[root@node2 Desktop]# mv -u file2.txt file1.txt  ## 看时间文件file2.txt比file1.txt新,所以提示是否覆盖旧一点的file1.txt文件
mv: overwrite ‘file1.txt’? y
[root@node2 Desktop]# ll
total 4
-rw-r--r--. 1 root root 57 Feb 23 16:54 file1.txt
[root@node2 Desktop]# 

4.4.打印执行详细信息

[root@node2 Desktop]# ll
total 8
-rw-r--r--. 1 root root 57 Feb 23 16:54 file1.txt
-rw-r--r--. 1 root root 57 Feb 23 17:01 file2.txt
[root@node2 Desktop]# mv -v file1.txt file2.txt    ## -v参数打印详细执行过程
mv: overwrite ‘file2.txt’? y
‘file1.txt’ -> ‘file2.txt’
[root@node2 Desktop]# 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值