Linux mv命令(7)
mv命令,move的缩写,顾名思义是移动文件的意思。其实就相当于剪切操作,而前面说的cp命令,就是复制粘贴,这两个有什么区别想必不用多说。
基本使用
使用格式
mv 源文件 目标文件
我的根目录下有 a 目录和一个 readme.txt 文件,现在我要把readme.txt文件移动到 a目录里:
//查看a目录结构 tree a //结果 a └── b ├── c │ └── 123.txt └── test.txt
移动:
mv readme.txt ./a
验证:
tree a //结果 a ├── b │ ├── c │ │ └── 123.txt │ └── test.txt └── readme.txt
此时,根目录下的 readme.txt文件也不见了,想想剪切操作就明白了。
重命名
mv 命令还可以用来重命名,这听起来很奇怪,移动操作跟重命名有什么关系,其实回想cp命令也不难理解了,在移动过程中,改变名称,不改变位置,这样不就相当于重命名了。
//进入a目录 cd a //将readme.txt重命名为demo.txt mv readme.txt demo.txt //tree . ├── b │ ├── c │ │ └── 123.txt │ └── test.txt └── demo.txt
覆盖提示
现在假设一个场景,我们在 a目录里,需要将 b目录里的 test.txt文件移动到 a目录下,并重命名为 demo.txt,我们知道 a目录下已有了一个demo.txt文件,这样的操作会覆盖掉原有的 demo.txt文件,可以在自己的环境测试,我的环境默认就会有覆盖提示:
mv b/test.txt ./demo.txt mv: overwrite ‘./demo.txt’?
为了安全性,应该都具备提示,mv 提供了一个选项 -i 可以保证每次覆盖前都提示,这跟 cp命令差一样。不管环境默认有没有提示,还是尽量加上 -i 吧:
mv -i b/test.txt ./demo.txt mv: overwrite ‘./demo.txt’? y tree . ├── b │ └── c │ └── 123.txt └── demo.txt