每天一个linux命令:mv

每天一个linux命令:mv

更多精彩请关注:www.zicreate.com

1.命令功能

mv 即 move,可以用来移动文件或重命名文件。

mv 命令执行结果有如下两种情况:

  • 如果目标文件是一个目录名,【源】是N个文件或目录,则所有的【源】都会被移至目标目录下。所有移到该目录下的文件都将保留以前的文件名。当【源】有多个时,目标必须是目录名。
  • 如果目标文件是一个文件名,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。
  • 如果源文件和目标文件在同一个目录下,mv 的作用就是重命名。

2.命令格式

mv [选项] 源文件或目录 目标文件或目录

3.命令参数

    --backup[=CONTROL]    对每个存在的目标文件备份;共有如下四种备份策略:
        - CONTROL=none或off : 不备份。
        - CONTROL=numbered或t:数字编号的备份
        - CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1...n:。执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。
        - CONTROL=simple或never:使用简单备份,在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

    -b    和--backup 一样,但是不接受任何参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。
    -f, --force    如果覆盖已存在文件,那么也不会有任何提示;
    -i, --interactive    如果需要覆盖,那么会进行提示;
    -n, --no-clobber    如果目标文件已存在,那么不会进行覆盖;

    如果你指定了 -f, -i , -n 中的两个或者三个,那么只有最后一个有效。

    -S, --suffix=SUFFIX  即替换通常的备份文件后缀,使用自定义后缀;
    -t, --target-directory=DIRECTORY  该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后;该功能并无太大用处,不再讲解。
    -u, --update    当目标文件不存在,或者源文件比目标文件的 修改时间 更新时,该命令才有效;

4.使用场景

场景1:重命名

将文件 test1.txt 移动到“/tmp/test/”目录下,并重名名为 test2.txt

$ mv test1.txt /tmp/test/test2.txt

场景2:将多个文件移动到指定目录下

[.trash]# ls                                                        #显示当前目录下文件
test1.txt  test2.txt  test3.txt  test4.txt
[.trash]# mkdir subdir                                       #创建一个目录“subdir”
[.trash]# mv test3.txt subdir/                            #将test3.txt 移动到目录 “subdir”

[.trash]# mkdir /tmp/test/nulldir                      #在目标位置创建一个空目录
[.trash]# ls !$                                    
ls /tmp/test/nulldir
[.trash]# mv * /tmp/test/nulldir/                      #将当前目录下的文件以及目录都移动到目标目录下,注意,【源】有多个时,目标必须为目录名
[.trash]# ls /tmp/test/nulldir
subdir  test1.txt  test2.txt  test4.txt
[.trash]# ls                                                        #移动后当前目录空了

场景3:”–backup”常见操作

[.trash]# ls /tmp/test/nulldir
subdir  test1.txt  test2.txt  test4.txt
[.trash]# touch test1.txt test2.txt test3.txt test4.txt                                                #创建文件
[.trash]# mv * /tmp/test/nulldir/ --backup=numbered                                            
[.trash]# ls /tmp/test/nulldir
subdir  test1.txt  test1.txt.~1~  test2.txt  test2.txt.~1~  test3.txt  test4.txt  test4.txt.~1~
[.trash]# touch test1.txt test2.txt test3.txt test4.txt
[.trash]# mv --backup=nil  * /tmp/test/nulldir/
[.trash]# ls /tmp/test/nulldir
subdir  test1.txt  test1.txt.~1~  test1.txt.~2~  test2.txt  test2.txt.~1~  test2.txt.~2~  test3.txt  test3.txt.~1~  test4.txt  test4.txt.~1~  test4.txt.~2~

场景4:其他命令参数操作

-S, –suffix=SUFFIX 即替换通常的备份文件后缀,使用自定义后缀;

[.trash]# \rm /tmp/test/nulldir/* -rf
[.trash]# ls /tmp/test/nulldir
[.trash]# touch test1.txt test2.txt test3.txt test4.txt
[.trash]# mv -S .mysuf * /tmp/test/nulldir/
[.trash]# ls /tmp/test/nulldir
test1.txt  test2.txt  test3.txt  test4.txt
[.trash]# touch test1.txt test2.txt test3.txt test4.txt
[.trash]# mv -S .mysuf * /tmp/test/nulldir/
[.trash]# ls /tmp/test/nulldir
test1.txt  test1.txt.mysuf  test2.txt  test2.txt.mysuf  test3.txt  test3.txt.mysuf  test4.txt  test4.txt.mysuf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值