# mv - 用来对文件或目录重新命名
将文件或者目录移动到另一个地方,或者重命名。
# 适用范围
RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux
# 语法
mv [选项] [-T] src dst
mv [选项] src directory
mv [选项] -t directory src
# 选项
--backup=[control] # 为每一个存在的文件创建备份
-b # 和“--backup”一样,但是没有参数
-f, --force # 强制移动
-i, --interactive # 使用交互的方式移动
-n, --no-clobber # 不覆盖已经存在的文件。如果同时制定了“-i,-n,-f”中的多个选项,那么只有最后一个选项有效。
--strip-trailing-slashes # 从每个源参数中移除任何尾随斜线。
-S, --suffix=SUFFIX # 重写通常的备份后缀
-t, --target-directory # 将所有源文件移动到目标文件夹
-T, --no-target-directory # 将目标视为正常文件
-u, --update # 当目的文件不存在,或者源文件比目的文件新的时候才移动
-v, --verbose # 显示详细执行过程
--help # 显示帮助文档
--version # 显示命令版本信息
备份后缀为‘~’,除非设置为“--”后缀或者SSIMPLE_BACKUP_SUFFIX。版本控制方法可以通过“--backup”的选项或通过VERSION_CONTROL环境变量来选择。以下是这些值:
- none,off:从不备份,即使给出了“--backup”选项。
- numbered,t:创建编号备份。
- existing,nil:如果有编号备份,则为编号,否则为简单。
- simple,over:总是创建简单备份。
# 举例
将目录/usr/men中的所有文件移到当前目录(用.表示)中:
mv /usr/men/* .
移动文件
mv file_1.txt /home/office/
移动多个文件
mv file_2.txt file_3.txt file_4.txt /home/office/
mv *.txt /home/office/
移动目录
mv directory_1/ /home/office/
重命名文件或目录
mv file_1.txt file_2.txt # 将文件file_1.txt改名为file_2.txt
重命名目录
mv directory_1/ directory_2/
打印移动信息
mv -v *.txt /home/office
提示是否覆盖文件
mv -i file_1.txt /home/office
源文件比目标文件新时才执行更新
mv -uv *.txt /home/office
不要覆盖任何已存在的文件
mv -vn *.txt /home/office
复制时创建备份
mv -bv *.txt /home/office
无条件覆盖已经存在的文件
mv -f *.txt /home/office
在同一个目录下移动,即重命名。
[sogrey@bogon DirTest]$ ls
Dir1 Dir2
[sogrey@bogon DirTest]$ mv Dir1 DirTmp
[sogrey@bogon DirTest]$ ls
Dir2 DirTmp
[sogrey@bogon DirTest]$
移动到其他地方
[sogrey@bogon DirTest]$ ls
Dir2 DirTmp
[sogrey@bogon DirTest]$ mv DirTmp Dir2/Dir1 #DirTmp移动到Dir2目录下并重命名为Dir1
[sogrey@bogon DirTest]$ ls
Dir2
[sogrey@bogon DirTest]$ cd Dir2
[sogrey@bogon Dir2]$ ls
Dir1 run.sh