linux常用命令(6)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
输出:
[[email protected] test]# ll
总计 20drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
-rw-r--r-- 1 root root 16 10-28 06:04 test.log
[[email protected] test]# mv test.log test1.txt
[[email protected] test]# ll
总计 20drwxr-xr-x 6 root root 4096 10-27 01:58 scf
-rw-r--r-- 1 root root 16 10-28 06:04 test1.txt
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
说明:
将文件test.log重命名为test1.txt
实例二:移动文件
命令:
mv test1.txt test3
输出:
[[email protected] test]# ll
总计 20drwxr-xr-x 6 root root 4096 10-27 01:58 scf
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[[email protected] test]# mv test1.txt test3
[[email protected] test]# ll
总计 16drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-28 06:09 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[[email protected] test]# cd test3
[[email protected] test3]# ll
总计 4
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
[[email protected] 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
输出:
[[email protected] test]# ll
总计 28
-rw-r--r-- 1 root root 8 10-28 06:15 log1.txt
-rw-r--r-- 1 root root 12 10-28 06:15 log2.txt
-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt
drwxrwxrwx 2 root root 4096 10-28 06:09 test3
[[email protected] test]# mv log1.txt log2.txt log3.txt test3
[[email protected] test]# ll
总计 16drwxrwxrwx 2 root root 4096 10-28 06:18 test3
[[email protected] test]# cd test3/
[[email protected] test3]# ll
总计 16
-rw-r--r-- 1 root root 8 10-28 06:15 log1.txt
-rw-r--r-- 1 root root 12 10-28 06:15 log2.txt
-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
[[email protected] test3]#
[[email protected] test3]# ll
总计 20
-rw-r--r-- 1 root root 8 10-28 06:15 log1.txt
-rw-r--r-- 1 root root 12 10-28 06:15 log2.txt
-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt
drwxr-xr-x 2 root root 4096 10-28 06:21 logs
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
[[email protected] test3]# mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
[[email protected] test3]# cd ..
[[email protected] test]# cd test4/
[[email protected] test4]# ll
总计 12
-rw-r--r-- 1 root root 8 10-28 06:15 log1.txt
-rw-r--r-- 1 root root 12 10-28 06:15 log2.txt
-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt
[[email protected] 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
输出:
[[email protected] test4]# ll
总计 12
-rw-r--r-- 1 root root 8 10-28 06:15 log1.txt
-rw-r--r-- 1 root root 12 10-28 06:15 log2.txt
-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt
[[email protected] test4]# cat log1.txt
odfdfs
[[email protected] test4]# cat log2.txt
ererwerwer
[[email protected] test4]# mv -i log1.txt log2.txt
mv:是否覆盖“log2.txt”? y
[[email protected] test4]# cat log2.txt
odfdfs
[[email protected] test4]#
实例五:将文件file1改名为file2,即使file2存在,也是直接覆盖掉。
命令:
mv -f log3.txt log2.txt
输出:
[[email protected] test4]# ll
总计 8
-rw-r--r-- 1 root root 8 10-28 06:15 log2.txt
-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt
[[email protected] test4]# cat log2.txt
odfdfs
[[email protected] test4]# cat log3
cat: log3: 没有那个文件或目录
[[email protected] test4]# ll
总计 8
-rw-r--r-- 1 root root 8 10-28 06:15 log2.txt
-rw-r--r-- 1 root root 13 10-28 06:16 log3.txt
[[email protected] test4]# cat log2.txt
odfdfs
[[email protected] test4]# cat log3.txt
dfosdfsdfdss
[[email protected] test4]# mv -f log3.txt log2.txt
[[email protected] test4]# cat log2.txt
dfosdfsdfdss
[[email protected] test4]# ll
总计 4
-rw-r--r-- 1 root root 13 10-28 06:16 log2.txt
[[email protected] test4]#
说明:
log3.txt的内容直接覆盖了log2.txt内容,-f 这是个危险的选项,使用的时候一定要保持头脑清晰,一般情况下最好不用加上它。
实例六:目录的移动
命令:
mv dir1 dir2
输出:
[[email protected] test4]# ll
-rw-r--r-- 1 root root 13 10-28 06:16 log2.txt
[[email protected] test4]# ll
-rw-r--r-- 1 root root 13 10-28 06:16 log2.txt
[[email protected] test4]# cd ..
[[email protected] test]# ll
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 3 root root 4096 10-28 06:24 test3
drwxr-xr-x 2 root root 4096 10-28 06:48 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[[email protected] test]# cd test3
[[email protected] test3]# ll
drwxr-xr-x 2 root root 4096 10-28 06:21 logs
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
[[email protected] test3]# cd ..
[[email protected] test]# mv test4 test3
[[email protected] test]# ll
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 4 root root 4096 10-28 06:54 test3
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[[email protected] test]# cd test3/
[[email protected] test3]# ll
drwxr-xr-x 2 root root 4096 10-28 06:21 logs
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
drwxr-xr-x 2 root root 4096 10-28 06:48 test4
[[email protected] test3]#
说明:
如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。

实例7:移动当前文件夹下的所有文件到上一级目录
命令:
mv * ../
输出:
[[email protected] test4]# 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
[[email protected] test4]# mv * ../
[[email protected] test4]# ll
[[email protected] test4]# cd ..
[[email protected] test3]# 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
drwxr-xr-x 2 root root 4096 10-28 06:21 logs
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
drwxr-xr-x 2 root root 4096 10-28 07:02 test4
实例八:把当前目录的一个子目录里的文件移动到另一个子目录里
命令:
mv test3/*.txt test5
输出:
[[email protected] test]# ll
drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 4 root root 4096 10-28 07:02 test3
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
[[email protected] test]# cd test3
[[email protected] test3]# 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
drwxr-xr-x 2 root root 4096 10-28 06:21 logs
-rw-r--r-- 1 root root 29 10-28 06:05 test1.txt
drwxr-xr-x 2 root root 4096 10-28 07:02 test4
[[email protected] test3]# cd ..
[[email protected] test]# mv test3/*.txt test5
[[email protected] test]# cd test5
[[email protected] 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
[[email protected] test5]# cd ..
[[email protected] test]# cd test3/
[[email protected] 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
[[email protected] test3]#
实例九:文件被覆盖前做简单备份,前面加参数-b
命令:
mv log1.txt -b log2.txt
输出:
[[email protected] 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
[[email protected] test5]# mv log1.txt -b log2.txt
mv:是否覆盖“log2.txt”? y
[[email protected] test5]# ll
-rw-r--r-- 1 root root 25 10-28 07:02 log2.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
[[email protected] 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:使用简单备份:在被覆盖前进行了简单备份,简单备份只能有一份,再次被覆盖时,简单备份也会被覆盖。

时间: 2024-12-22 07:49:35

linux常用命令(6)mv命令的相关文章

Linux 常用的压缩打包命令行

LINUX 常用的压缩打包命令行: ==== 1.常用压缩命令: tar -zcvf xx.tar.gz xx 例子:tar -zcvf xx-20170614.sql.tar.gz xx-20170614.sql 2.解压缩 tar -zxvf xx.tar.gz 3.把打包压缩过的文件从服务器上下载到本地 scp [email protected]:/home/数据库名-20170614.sql.tar.gz E:/download/ 例子:scp [email protected]:/ho

Linux常用而且好玩的命令

Linux常用而且好玩的命令 关于date其实不需要多做解释,看看上面的图应该就可以理解 %Y表示年 %m表示月 %d表示日 %H表示时 诸如此类,有时间我们会校对时间,这时就会用的ntp服务,忘记的小伙伴可以复习下,对于ntp只要记住如何校对时间的命令就可以了. 2.显示日历的命令: 显示日志这种奇葩的命令,或许只有歪果仁用吧,反正我只看手机. 3.  重要的几个热键[Tab],[ctrl]-c, [ctrl]-d  [Tab]按键---『命令补全』 [ctrl]-c按键---让当前的程序『停

每天学习Linux(7)---mv命令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目录 目标文件或目录 2.命令功能: 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名.当第二个参数是已

每天一个linux命令:mv命令

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目录 目标文件或目录 2.命令功能: 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中.当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名.当第二个参数是已

linux -- 常用的20个命令

1. ls命令 ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. [email protected]:~# ls Android-Games Music Pictures Public Desktop Tecmint.com Documents TecMint-Sync Downloads Templates “ls -l”命令以详情模式(long listing fashion)列出文件夹的内容. [ema

Linux常用的 20 个命令

最近要把项目部署到服务器测试,虽然之前linux的命令有用了不少,但是,很多命令也渐渐生疏了. 于是在网上找了些关于命令的资料,记录一下在自己的博客.顺便在这里提一下用的两个软件,Xshell和FlashFXP,putty也用了下,感觉还是Xshell舒服. 1. ls命令 ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. ? 1 2 3 4 5 6 7 [email protected]:~# ls And

Linux常用指令和系统管理命令总结

Linux常用指令: ls 显示文件或目录 ls -l 列出文件详细信息 ls -a 列出当前目录下所有文件或目录,包括隐藏的 ls -al 显示详细文件信息,包括隐藏的文件 mkdir 创建目录 mkdir -p 创建目录,若无父目录,则创建父目录 cd 切换目录 touch 创建空文件 echo 创建带有内容的文件 cat 查看文件内容 cp 拷贝 mv 移动或者重命名 rm 删除文件 rm -r 递归删除,可删除子目录及文件 rm -f 强制删除 rm -rf 强制递归删除 find 在文

Linux 常用的系统工作命令

1.echo 命令 echo命令用于在终端输出字符串或变量提取后的值,格式为"echo [字符串 | $变量]". 例如,把指定字符串"Linuxprobe.com"输出到终端屏幕的命令为: [[email protected] ~]# echo Linuxprobe.Com 该命令会在终端屏幕上显示如下信息: Linuxprobe.Com  下面,我们使用$变量的方式提取变量SHELL的值,并将其输出到屏幕上: [[email protected] ~]# ech

Linux命令学习-mv命令

Linux中,mv命令的全称是move,主要作用是移动文件或文件夹,类似于Windows下的剪切功能,同时还可以用于修改名字. 假设当前处于wintest用户的主目录,路径为 /home/wintest ,存在文件夹testA.testB和testC,而testA文件夹下存在子文件夹testB1和testD,testB下存在文件test.ini 在testA目录下,将testD文件夹移动到当前用户主目录 mv testD ~/ 在testB目录下,将test.ini文件移动到testA文件夹下