zoukankan      html  css  js  c++  java
  • 一天一个 Linux 命令(10):mv命令

    一、简介

    Linux里的mv命令,英文全拼:move file,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

    二、格式说明

    mv [OPTION]... [-T] SOURCE DEST
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE...
    

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

    三、选项说明

    -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
    -f: --force,如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
    -n: --no-clobber,不要覆盖任何已存在的文件或目录。
    -u: --update,当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
    -i: --interactive,如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
    -t: –target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
    

    四、命令功能

    根据mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

    1.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

    2.当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。

    具体请参考如下内容:

    1.mv source_file(文件) dest_file(文件)

    将源文件名 source_file 改为目标文件名 dest_file

    2.mv source_file(文件) dest_directory(目录)

    将文件 source_file 移动到目标目录 dest_directory 中

    3.mv source_directory(目录) dest_directory(目录)

    目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory

    4.mv source_directory(目录) dest_file(文件)

    出错

    五、常见用法

    1.将文件 test1.txt 改名为 文件test2.txt

    mv test1.txt test2.txt
    

    2.移动文件,将文件test1.txt移动到test3目录

    mv test1.txt test3/
    

    3.批量移动文件,将 test1.txt, test2.txt, test3.txt移动到目录test4里面

    mv  test1.txt, test2.txt, test3.txt test4
    

    4.将文件 test1.txt 改名为 文件test2.txt,如果test2.txt已经存在,则询问是否覆盖

    mv -i test1.txt test2.txt
    

    5.将文件 test1.txt 改名为 文件test2.txt,即使test2.txt已经存在,也直接覆盖

    mv -f test1.txt test2.txt
    

    注意:-f 这是个危险的选项,谨慎使用。

    6.移动当前文件夹下的所有文件到上一级目录

    mv * ../
    

    7.移动目录,如果目录test2不存在,将目录test1改名为test2;否则,将test1移动到test2中

    mv test1 test2
    

    8.把当前目录的一个子目录里的文件移动到另一个子目录里,将test1目录下后缀为.txt文件移动到test2目录

    mv test1/*.txt tes2
    

    9.文件被覆盖前做简单备份,前面加参数-b

    mv test1.txt -b test2.txt
    

    注意:

    -b 不接受参数,mv会去读取环境变量VERSION_CONTROL来作为备份策略。

    –backup该选项指定如果目标文件存在时的动作,共有四种备份策略:

    1.CONTROL=none或off : 不备份。

    2.CONTROL=numbered或t:数字编号的备份

    3.CONTROL=existing或nil:如果存在以数字编号的备份,则继续编号备份m+1…n:

    执行mv操作前已存在以数字编号的文件log2.txt.~1~,那么再次执行将产生log2.txt~2~,以次类推。如果之前没有以数字编号的文件,则使用下面讲到的简单备份。

    4.CONTROL=simple或never:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

    10.先指定目标再指定源,将test1目录下面后缀为.txt的文件移动到test2目录

    mv -t test2 test1/*.txt
    

     

     
  • 相关阅读:
    【校招面试 之 C/C++】第23题 C++ STL(五)之Set
    Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server "xxxxxxx".
    Redhat Linux安装JDK 1.7
    ORA-10635: Invalid segment or tablespace type
    Symantec Backup Exec 2012 Agent for Linux 卸载
    Symantec Backup Exec 2012 Agent For Linux安装
    You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1
    YourSQLDba介绍
    PL/SQL重新编译包无反应
    MS SQL 监控数据/日志文件增长
  • 原文地址:https://www.cnblogs.com/joshua317/p/15261997.html
Copyright © 2011-2022 走看看