
mv命令,move的缩写,顾名思义是移动文件的意思。其实就相当于剪切操作,而前面说的cp命令,就是复制粘贴,这两个有什么区别想必不用多说。
基本使用
使用格式
mv 源文件 目标文件
我的根目录下有 a 目录和一个 readme.txt 文件,现在我要把readme.txt文件移动到 a目录里:
//查看a目录结构
tree a //结果
a
└── b
├── c
│ └── .txt
└── test.txt
移动:
mv readme.txt ./a
验证:
tree a //结果
a
├── b
│ ├── c
│ │ └── .txt
│ └── test.txt
└── readme.txt
此时,根目录下的 readme.txt文件也不见了,想想剪切操作就明白了。
重命名
mv 命令还可以用来重命名,这听起来很奇怪,移动操作跟重命名有什么关系,其实回想cp命令也不难理解了,在移动过程中,改变名称,不改变位置,这样不就相当于重命名了。
//进入a目录
cd a //将readme.txt重命名为demo.txt
mv readme.txt demo.txt //tree
.
├── b
│ ├── c
│ │ └── .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
│ └── .txt
└── demo.txt