每天一个linux命令:【转载】mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
1.命令格式:
mv [选项] 源文件或目录 目标文件或目录
2.命令功能:
视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。
3.命令参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后。
4.命令实例:
实例一:文件改名
命令:
mv test.log test1.txt
输出:
[root@localhost test]# ll
总计 20drwxr-xr-x root root - : scf
drwxrwxrwx root root - : test3
drwxr-xr-x root root - : test4
drwxr-xr-x root root - : test5
-rw-r--r-- root root - : test.log
[root@localhost test]# mv test.log test1.txt
[root@localhost test]# ll
总计 20drwxr-xr-x root root - : scf
-rw-r--r-- root root - : test1.txt
drwxrwxrwx root root - : test3
drwxr-xr-x root root - : test4
drwxr-xr-x root root - : test5
说明:
将文件test.log重命名为test1.txt
实例二:移动文件
命令:
mv test1.txt test3
输出:
[root@localhost test]# ll
总计 20drwxr-xr-x root root - : scf
-rw-r--r-- root root - : test1.txt
drwxrwxrwx root root - : test3
drwxr-xr-x root root - : test4
drwxr-xr-x root root - : test5
[root@localhost test]# mv test1.txt test3
[root@localhost test]# ll
总计 16drwxr-xr-x root root - : scf
drwxrwxrwx root root - : test3
drwxr-xr-x root root - : test4
drwxr-xr-x root root - : test5
[root@localhost test]# cd test3
[root@localhost test3]# ll
总计
-rw-r--r-- root root - : test1.txt
[root@localhost test3]#
说明:
将test1.txt文件移到目录test3中
实例三:将文件log1.txt,log2.txt,log3.txt移动到目录test3中。
命令:
mv log1.txt log2.txt log3.txt test3
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
输出:
[root@localhost test]# ll 总计 -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log3.txt drwxrwxrwx root root - : test3 [root@localhost test]# mv log1.txt log2.txt log3.txt test3 [root@localhost test]# ll 总计 16drwxrwxrwx root root - : test3 [root@localhost test]# cd test3/ [root@localhost test3]# ll 总计 -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log3.txt -rw-r--r-- root root - : test1.txt [root@localhost test3]# [root@localhost test3]# ll 总计 -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log3.txt drwxr-xr-x root root - : logs -rw-r--r-- root root - : test1.txt [root@localhost test3]# mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt [root@localhost test3]# cd .. [root@localhost test]# cd test4/ [root@localhost test4]# ll 总计 -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log3.txt [root@localhost test4]#
说明:
mv log1.txt log2.txt log3.txt test3 命令将log1.txt ,log2.txt, log3.txt 三个文件移到 test3目录中去,mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt 命令又将三个文件移动到test4目录中去
实例四:将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
命令:
mv -i log1.txt log2.txt
输出:
[root@localhost test4]# ll 总计 -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log3.txt [root@localhost test4]# cat log1.txt odfdfs [root@localhost test4]# cat log2.txt ererwerwer [root@localhost test4]# mv -i log1.txt log2.txt mv:是否覆盖“log2.txt”? y [root@localhost test4]# cat log2.txt odfdfs [root@localhost test4]#
实例五:将文件file1改名为file2,即使file2存在,也是直接覆盖掉。
命令:
mv -f log3.txt log2.txt
输出:
[root@localhost test4]# ll 总计 -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log3.txt [root@localhost test4]# cat log2.txt odfdfs [root@localhost test4]# cat log3 cat: log3: 没有那个文件或目录 [root@localhost test4]# ll 总计 -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log3.txt [root@localhost test4]# cat log2.txt odfdfs [root@localhost test4]# cat log3.txt dfosdfsdfdss [root@localhost test4]# mv -f log3.txt log2.txt [root@localhost test4]# cat log2.txt dfosdfsdfdss [root@localhost test4]# ll 总计 -rw-r--r-- root root - : log2.txt [root@localhost test4]#
说明:
log3.txt的内容直接覆盖了log2.txt内容,-f 这是个危险的选项,使用的时候一定要保持头脑清晰,一般情况下最好不用加上它。
实例六:目录的移动
命令:
mv dir1 dir2
输出:
[root@localhost test4]# ll -rw-r--r-- root root - : log2.txt [root@localhost test4]# ll -rw-r--r-- root root - : log2.txt [root@localhost test4]# cd .. [root@localhost test]# ll drwxr-xr-x root root - : scf drwxrwxrwx root root - : test3 drwxr-xr-x root root - : test4 drwxr-xr-x root root - : test5 [root@localhost test]# cd test3 [root@localhost test3]# ll drwxr-xr-x root root - : logs -rw-r--r-- root root - : test1.txt [root@localhost test3]# cd .. [root@localhost test]# mv test4 test3 [root@localhost test]# ll drwxr-xr-x root root - : scf drwxrwxrwx root root - : test3 drwxr-xr-x root root - : test5 [root@localhost test]# cd test3/ [root@localhost test3]# ll drwxr-xr-x root root - : logs -rw-r--r-- root root - : test1.txt drwxr-xr-x root root - : test4 [root@localhost test3]#
说明:
如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。
实例7:移动当前文件夹下的所有文件到上一级目录
命令:
mv * ../
输出:
[root@localhost test4]# ll -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt [root@localhost test4]# mv * ../ [root@localhost test4]# ll [root@localhost test4]# cd .. [root@localhost test3]# ll -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt drwxr-xr-x root root - : logs -rw-r--r-- root root - : test1.txt drwxr-xr-x root root - : test4
实例八:把当前目录的一个子目录里的文件移动到另一个子目录里
命令:
mv test3/*.txt test5
输出:
[root@localhost test]# ll drwxr-xr-x root root - : scf drwxrwxrwx root root - : test3 drwxr-xr-x root root - : test5 [root@localhost test]# cd test3 [root@localhost test3]# ll -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt drwxr-xr-x root root - : logs -rw-r--r-- root root - : test1.txt drwxr-xr-x root root - : test4 [root@localhost test3]# cd .. [root@localhost test]# mv test3/*.txt test5 [root@localhost test]# cd test5 [root@localhost test5]# ll -rw-r--r-- 1 root root 25 10-28 07:02 log1.txt -rw-r--r-- 1 root root 13 10-28 06:16 log2.txt -rw-r--r-- 1 root root 29 10-28 06:05 test1.txt drwxr-xr-x 2 root root 4096 10-25 17:56 test5-1 [root@localhost test5]# cd .. [root@localhost test]# cd test3/ [root@localhost test3]# ll drwxr-xr-x 2 root root 4096 10-28 06:21 logs drwxr-xr-x 2 root root 4096 10-28 07:02 test4 [root@localhost test3]#
实例九:文件被覆盖前做简单备份,前面加参数-b
命令:
mv log1.txt -b log2.txt
输出:
[root@localhost test5]# ll -rw-r--r-- root root - : log1.txt -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : test1.txt drwxr-xr-x root root - : test5- [root@localhost test5]# mv log1.txt -b log2.txt mv:是否覆盖“log2.txt”? y [root@localhost test5]# ll -rw-r--r-- root root - : log2.txt -rw-r--r-- root root - : log2.txt~ -rw-r--r-- root root - : test1.txt drwxr-xr-x root root - : test5- [root@localhost test5]#
说明:
-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:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。
每天一个linux命令:【转载】mv命令的更多相关文章
- 小知识点:linux下的mv命令怎么用?
linux下的mv命令怎么用? mv a.txt b.txt 将a.txt 改名为b.txtmv a.txt /mnt/b.txt 同时更改路径为/mnt/mv a.txt /opt/ftp/ ...
- Linux命令学习-mv命令
Linux中,mv命令的全称是move,主要作用是移动文件或文件夹,类似于Windows下的剪切功能,同时还可以用于修改名字. 假设当前处于wintest用户的主目录,路径为 /home/wintes ...
- 每天一个linux命令:mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- linux常用命令(6)mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录.1 命令格式:mv [选项] 原文件或目录 ...
- linux常用命令:mv 命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- linux命令:mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- Linux CentOS7 VMware 环境变量PATH、cp命令、mv命令、文档查看cat/more/less/head/tail——笔记
一.环境变量PATH PATH一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径. 命令在这几个目录里面就不需要敲绝对路径 echo $PATH 例子:把/tmp/ 加到 $PA ...
- linux命令之------Mv命令
Mv命令 1)作用:用来为文件或目录改名/或将文件或目录一如其他位置 2)-i:若指定目录已有同名文件,则先询问是否覆盖旧文件: 3)-f:在mv操作要覆盖某已有的目标文件时,不给任何指示: 4)案例 ...
- 【Linux常见命令】mv命令
mv - move (rename) files mv命令用来为文件或目录改名.或将文件或目录移入其它位置. 语法: mv [OPTION]... [-T] SOURCE DEST mv [OPTIO ...
- 环境变量PATH、cp命令、mv命令、文档查看cat/more/less/head/tail 各个命令的使用介绍
第2周第2次课(3月27日) 课程内容: 2.10 环境变量PATH2.11 cp命令2.12 mv命令2.13 文档查看cat/more/less/head/tail 2.10 环境变量PATH P ...
随机推荐
- kubectl delete
kubectl delete 通过配置文件名.stdin.资源名称或label选择器来删除资源. 支持JSON和YAML格式文件.可以只指定一种类型的参数:文件名.资源名称或label选择器. 有些资 ...
- 淘海外分发Job 多线程demo
using System;using System.Collections.Generic;using System.Configuration;using System.Diagnostics;us ...
- JAVA初学者(一)
2015-12-15 21:26:17 刚学的java 做个总结: 1.构造函数没有返回值. 2.A对象调用Q的方法,Q方法里的变量就是A的变量 Fraction add(Fraction f) 在 ...
- jQuery实际案例②——三层轮播图
1.如图,这种轮播图需要实现的是,当鼠标移到2上时,第二张图片从右侧过来 2.需要注意的:①很明显这是通过改变z-index与left值来实现的: ②整体布局需注意,图与数值(1,2,3,4,5)两 ...
- [postgresql]ROWS is not applicable when function does not return a set问题解决
需要把程序结尾的ROWS 1000去掉,提示如果函数不是返回一个数据集的情况下ROWS是不适用的: CREATE OR REPLACE FUNCTION public.function( eigyou ...
- TestNG入门--安装和基本介绍
TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了. Tes ...
- 设计模式--原型模式C++实现
原型模式C++实现 1定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 2类图 3实现 class Prototype { protected: Prototype(); publ ...
- Java连接MySQL数据库——代码
工具:eclipse MySQL5.7.17 MySQL连接驱动:mysql-connector-java-5.1.43.jar 加载驱动:我是用MAVEN进行管理 数据库连接信息: 数据库名称:wu ...
- item2 - MAC 下最好的终端工具
1.http://www.iterm2.com/downloads.html (下载地址)
- day6-面向对象基础篇
一.面向对象引子及概念 结合编程的一些理论知识和实践,可以总结出目前存在以下编程模式: 1. 面向过程 按照业务逻辑和实现过程步骤来逐步垒代码,代码编写的逻辑即对应于实际实现的步骤过程,核心是过程两个 ...