每天一个Linux命令(9)mv命令
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
(1)用法:
用法: mv [选项]... [-T] 源文件 目标文件
或: mv [选项]... 源文件... 目录
或: mv [选项]... -t 目录 源文件...
(2)功能:
将源文件重命名为目标文件,或将源文件移动至指定目录。
(3)选项参数:
1) -b: 当文件存在时,覆盖前,为其创建一个备份
2) -f 若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
3) -i 交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。这样可以避免误将文件覆盖。
4) -f -force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
5) -u 若目标文件已经存在,且 source 比较新,才会更新(update)
(4)实例:
1)[sunjimeng@localhost Document]$ mv text1 mytext 由于此处源文件test1与目标文件是在同一目录下,可以看作仅仅是改了文件的名字
[sunjimeng@localhost Document]$ ll //目录下为空
总用量
[sunjimeng@localhost Document]$ cat >text1 <<EOF //新建文件文档并从标准输入中输入数据到文件
> I am MenAngel
> PWD=$(pwd)
> I am testing the order of mv!
> EOF
[sunjimeng@localhost Document]$ ll
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : text1
[sunjimeng@localhost Document]$ mv text1 mytext //执行mv命令
[sunjimeng@localhost Document]$ cat mytext
I am MenAngel
PWD=/home/sunjimeng/Document
I am testing the order of mv!
[sunjimeng@localhost Document]$ ll //可见已经改名
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext
[sunjimeng@localhost Document]$
2)[sunjimeng@localhost Document]$ mv mytext{,.txt} 与[sunjimeng@localhost Document]$ mv text text.txt 给文件名增加后缀
[sunjimeng@localhost Document]$ mv mytext{,.txt} //增加后缀名的原始方法
[sunjimeng@localhost Document]$ ll
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext.txt
[sunjimeng@localhost Document]$ touch text
[sunjimeng@localhost Document]$ ll
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext.txt
-rw-rw-r--. sunjimeng sunjimeng 5月 : text
[sunjimeng@localhost Document]$ mv text text.txt //利用mv的改名目录增加后缀
[sunjimeng@localhost Document]$ ll
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext.txt
-rw-rw-r--. sunjimeng sunjimeng 5月 : text.txt
3)[root@localhost Documents]# mv ../Document/* . 将文件从源目录移动到目标目录,这里源目录和目标目录可以任意指定。.代表当前目录
[sunjimeng@localhost Document]$ ll //Document下游两个文件
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext.txt
-rw-rw-r--. sunjimeng sunjimeng 5月 : text.txt
[sunjimeng@localhost Document]$ cd ../Documents //进入同级兄弟目录Documents,发现其下为空
[sunjimeng@localhost Documents]$ ll
总用量
[sunjimeng@localhost Documents]$ mv ../Document/* . //将Document下的所有文件(*),移动到当前目录(.)。
mv: 无法将"../Document/mytext.txt" 移动至"./mytext.txt": 权限不够 //Linux用组名和用户名来管理文件,此时当前用户没有权限移动文件,必须改为root用户
mv: 无法将"../Document/text.txt" 移动至"./text.txt": 权限不够
[sunjimeng@localhost Documents]$ su root
密码:
ABRT 已检测到 '1' 个问题。预了解详细信息请执行:abrt-cli list --since 1462423345
[root@localhost Documents]# mv ../Document/* .
[root@localhost Documents]# ll //移动完成
总用量 4
-rw-rw-r--. 1 sunjimeng sunjimeng 73 5月 5 22:02 mytext.txt
-rw-rw-r--. 1 sunjimeng sunjimeng 0 5月 5 22:08 text.txt
[root@localhost Documents]# ls -l ../Document //查看Document目录已经没有任何东西
总用量 0
4)[root@localhost Documents]# mv -t ../Document ./* 功能同(3),但区别是源文件的路径和目标路径的位置发生了变化
[root@localhost Documents]# ll
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext.txt
-rw-rw-r--. sunjimeng sunjimeng 5月 : text.txt
[root@localhost Documents]# mv -t ./* ../Document //-t参数的功能就是让他们的位置发生变化,这里第一个参数是目标路径
mv: 目标"./mytext.txt" 不是目录
[root@localhost Documents]# mv -t ../Document ./* //位置调换一下就行了
[root@localhost Documents]# ll
总用量 0
[root@localhost Documents]# ll
总用量 0
[root@localhost Documents]# ls -l ../Document
总用量 4
-rw-rw-r--. 1 sunjimeng sunjimeng 73 5月 5 22:02 mytext.txt
-rw-rw-r--. 1 sunjimeng sunjimeng 0 5月 5 22:08 text.txt
5)[root@localhost Document]# mv mytext.txt mytext 如果第二个参数不是目录名,才将源文件改名,否则,移动源文件到该目录下(与实例1作比较)
[root@localhost Document]# mkdir mytext
[root@localhost Document]# ll
总用量
drwxr-xr-x. root root 5月 : mytext
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext.txt
-rw-rw-r--. sunjimeng sunjimeng 5月 : text
[root@localhost Document]# mv mytext.txt mytext //与实例一不同的是,这里mytext是个目录
[root@localhost Document]# ll
总用量
drwxr-xr-x. root root 5月 : mytext
-rw-rw-r--. sunjimeng sunjimeng 5月 : text
[root@localhost Document]# ls -l mytext
总用量
-rw-rw-r--. sunjimeng sunjimeng 5月 : mytext.txt
6)[root@localhost Document]# mv -b myword text 源文件和目标文件都是存在的,因此会有覆盖提醒,-b用于在覆盖时备份文件
[root@localhost Document]# cat >myword <<EOF
> this is my word!
> EOF
[root@localhost Document]# cat >text <<EOF
> this is my text!
> EOF
[root@localhost Document]# mv -b myword text //在一个文件即将覆盖另一个文件时,默认是提醒的,所以加上-i参数和不加是一样的
mv:是否覆盖"text"? y
[root@localhost Document]# cat myword
cat: myword: 没有那个文件或目录
[root@localhost Document]# cat text
this is my word!
[root@localhost Document]# ll
总用量
drwxr-xr-x. root root 5月 : mytext //这里text里存的是前面myword的内容,text的内容备份到text~中,需要特殊软件才能查看
-rw-r--r--. root root 5月 : text
-rw-rw-r--. sunjimeng sunjimeng 5月 : text~
7) [root@localhost text]# mv * ../ 将当前目录下的所有内容移动到父级目录(特殊情况)
[root@localhost Document]# mkdir text
[root@localhost Document]# touch ./text/{text1,text2,text3}
[root@localhost Document]# cd text
[root@localhost text]# mv * ../
[root@localhost text]# cd ../
[root@localhost Document]# ll
总用量
drwxr-xr-x. root root 5月 : text
-rw-r--r--. root root 5月 : text1
-rw-r--r--. root root 5月 : text2
-rw-r--r--. root root 5月 : text3
8)[root@localhost Document]# mv -f text2 text3 强制执行操作,并不做任何提醒
9)[root@localhost Document]# mv -i text2 text3 加不加-i在覆盖时都会提醒
[root@localhost Document]# ll
总用量
drwxr-xr-x. root root 5月 : text
-rw-r--r--. root root 5月 : text2
-rw-r--r--. root root 5月 : text3
-rw-r--r--. root root 5月 : text4
[root@localhost Document]# mv text2 text3
mv:是否覆盖"text3"? n
[root@localhost Document]# mv -i text2 text3
mv:是否覆盖"text3"? n
[root@localhost Document]# mv -f text2 text3
[root@localhost Document]# ll
总用量
drwxr-xr-x. root root 5月 : text
-rw-r--r--. root root 5月 : text3
-rw-r--r--. root root 5月 : text4
10)[root@localhost Document]# mv Dir text 将Dir目录移动到text目录下(text存在时),如果不存在直接将Dir改名为text
[root@localhost Document]# mkdir testDir
[root@localhost Document]# ll //下面的操作先将文件text3和text4放到textDir目录下
总用量
drwxr-xr-x. root root 5月 : testDir
drwxr-xr-x. root root 5月 : text
-rw-r--r--. root root 5月 : text3
-rw-r--r--. root root 5月 : text4
[root@localhost Document]# mv {text3,text4} ./testDir
[root@localhost Document]# mv testDir Dir //由于Dir不存在,所以testDir改名为Dir
[root@localhost Document]# mv Dir text //由于text是存在的,所以将Dir移到text目录下
[root@localhost Document]# ll
总用量
drwxr-xr-x. root root 5月 : text //下面验证了这一点
[root@localhost Document]# cd text
[root@localhost text]# ll
总用量
drwxr-xr-x. root root 5月 : Dir
[root@localhost text]# cd Dir
[root@localhost Dir]# ll
总用量
-rw-r--r--. root root 5月 : text3
-rw-r--r--. root root 5月 : text4
11)[root@localhost /]# mv --help
[root@localhost /]# mv --help
用法:mv [选项]... [-T] 源文件 目标文件
或:mv [选项]... 源文件... 目录
或:mv [选项]... -t 目录 源文件...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. Mandatory arguments to long options are mandatory for short options too.
--backup[=CONTROL] 为每个已存在的目标文件创建备份
-b 类似--backup 但不接受参数
-f, --force 覆盖前不询问
-i, --interactive 覆盖前询问
-n, --no-clobber 不覆盖已存在文件
如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
--strip-trailing-slashes 去掉每个源文件参数尾部的斜线
-S, --suffix=SUFFIX 替换常用的备份文件后缀
-t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY
-T, --no-target-directory treat DEST as a normal file
-u, --update move only when the SOURCE file is newer
than the destination file or when the
destination file is missing
-v, --verbose explain what is being done
-Z, --context set SELinux security context of destination
file to default type
--help 显示此帮助信息并退出
--version 显示版本信息并退出 The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable. Here are the values: none, off 不进行备份(即使使用了--backup 选项)
numbered, t 备份文件加上数字进行排序
existing, nil 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
simple, never 永远使用普通方式备份 GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
请向<http://translationproject.org/team/zh_CN.html> 报告mv 的翻译错误
要获取完整文档,请运行:info coreutils 'mv invocation'
12)[root@localhost /]# mv --version
[root@localhost /]# mv --version
mv (GNU coreutils) 8.22
Copyright (C) Free Software Foundation, Inc.
许可证:GPLv3+:GNU 通用公共许可证第3 版或更新版本<http://gnu.org/licenses/gpl.html>。
本软件是自由软件:您可以自由修改和重新发布它。
在法律范围内没有其他保证。 由Mike Parker、David MacKenzie 和Jim Meyering 编写。
(5)其他:
用-b做备份时:
-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命令(9)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 ...
随机推荐
- Oracle 查询用户表信息,导入导出处理表空间不一致
select table_name,tablespace_name from user_tables t; //查询用户默认表空间信息 SELECT t.* FROM USER_USERS t; 导入 ...
- Java除法结果带小数、进一法的实现 Java问题通用解决代码
http://blog.csdn.net/windone0109/article/details/5355379进一法: 即省略的位上只要大于零都要进一位 : 四舍五入法: 即省略的位上小于五都要舍 ...
- Android布局中 android:layout_gravity="bottom"为何不起作用?
在android布局时我们有时会需要将位于LinearLayout布局中的控件放在布局底部,或者是同时想将几个控件底部对齐,此时我们自然会想到使用 android:layout_gravity=&qu ...
- Atitit. Atiposter 发帖机版本历史 编年史
Atitit. Atiposter 发帖机版本历史 编年史 V1 初步实现sina csdn cnblogs V2 实现qzone sohu 的发帖功能 顺便重构接口实现分离 V3多文件循环发帖 ...
- Python基础之迭代器
迭代器的优点: 1.可以使用for循环遍历: 2.可以节省内存空间: 3.可以有序的访问集合(set)数据结构内的元素. 迭代器的缺点: 只能向前,不能后退. 可迭代对象与不可迭代对象: 可迭代对象: ...
- Redis用LPUSH和RPOP实现消息队列
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ServiceS ...
- Centos date 设置自定义时间
[1]手动修改 (1)设置日期 # date -s 20190315 (2)设置时间 # date -s 15:23:34 (3)设置日期和时间 # date -s "20190315 15 ...
- DFS应用——查找强分支
[0]README 0.1) 本文总结于 数据结构与算法分析, 源代码均为原创, 旨在 理解 "DFS应用--查找强分支" 的idea 并用源代码加以实现 : [1]查找强分支 1 ...
- MySQL查询优化程序
1.利用EXPLAIN 语句,查看是否用到索引: EXPLAIN 2.下面的WHERE 子句说明了怎样进行这项工作.第一行中,优化程序将简化表达式4/2 为值2,然后使用my_col 上的索引快速地找 ...
- iOS 9之3D Touch功能
首先要有真机iPhone 6s以上,开发工具Xcode 7,然后在官方文档拷贝一段文字就可以了. <key>UIApplicationShortcutItems</key> ...