mv
命令,用来移动文件和目录,实现文件或目录的重命名。相比于 cp
命令(用于复制文件),mv
直接对文件位置或名称进行更改,不创建副本。
1.`mv` 命令的基本语法
mv [选项] 源文件 目标文件
mv [选项] 源文件... 目标目录
mv [选项] -t 目标目录 源文件...
- 源文件:要移动或重命名的文件或目录。
- 目标文件:重命名时指定的新文件名。
- 目标目录:移动文件或目录的目标位置。
mv
命令的核心功能是移动文件/目录或重命名文件/目录:
- 重命名文件/目录
mv oldname.txt newname.txt
将 oldname.txt
重命名为 newname.txt
。
- 将文件移动到另一个目录
mv test.txt /path/to/dest/
将 test.txt
移动到 /path/to/dest/
目录。
- 移动多个文件到另一个目录
mv test1.txt test2.txt /path/to/dest/
将 test1.txt
和 test2.txt
移动到 /path/to/dest/
目录中。
2.常用选项
mv
命令提供了许多选项,以下是最常用的一些选项及其解释:
1. `-i`:交互模式(默认)
当目标文件已经存在时,提示用户确认是否覆盖目标文件。
mv -i test.txt /path/to/dest/
如果 /path/to/dest/
目录中已经有 test.txt
,系统会提示是否覆盖该文件:
mv:是否覆盖"test/test.txt"?
2. `-f`:强制模式
强制覆盖目标文件,不提示用户。
mv -f test.txt /path/to/dest/
如果 /path/to/dest/
中有同名文件,-f
选项将直接覆盖它,不会提示确认。
3. `-n`:不覆盖已存在的文件
如果目标文件已经存在,-n
选项会阻止移动操作。
mv -n test.txt /path/to/dest/
使用该选项时,如果目标目录已经有同名文件,mv
将不会执行移动操作,也不会覆盖目标文件。
4. `-v`:详细模式
显示每次移动的详细信息,适合调试或查看操作进展。
mv -v test1.txt /path/to/dest/
输出类似以下信息:
"demo.txt" -> "/www/demo.txt"
5. `-u`:仅移动较新的文件
当源文件比目标文件更新或者目标文件不存在时,才进行移动操作。
mv -u test.txt /path/to/dest/
如果目标目录有同名文件且该文件比源文件新,则不会进行移动操作。
6. `-t`:显式指定目标目录
使用 -t
选项可以明确指定目标目录,不用依赖命令行文件顺序。
mv -t /path/to/dest/ test1.txt test2.txt
这种方式明确了目标目录 /path/to/dest/
,文件 test1.txt
和 test2.txt
将被移动到该目录。
7. `-T`:禁止将目标视为目录
如果指定了 -T
选项,mv
将不会将目标视为目录,即使它是目录。
mv -T test1.txt /path/to/existing_directory/
如果 /path/to/existing_directory/
是一个目录,mv
会出错,因为 -T
选项禁止将目标视为目录。
mv: 无法以非目录来覆盖目录"/www/"
3.跨文件系统移动
通常在同一文件系统中移动文件非常高效,因为 mv
只是修改了文件的路径信息,不需要实际复制文件内容。然而,当源文件和目标文件位于不同的文件系统时,工作原理如下:
跨文件系统移动的工作原理
在跨文件系统移动时,mv
实际上是先复制文件,然后删除源文件。具体步骤如下:
- 使用类似
cp -a
的方式将源文件复制到目标文件系统。 - 如果复制成功,删除源文件。
- 如果复制失败,
mv
会删除已经复制到目标文件系统的部分文件,从而保持系统的一致性
mv /mnt/source_dir /home/user/dest_dir
假设源目录 /mnt/source_dir
位于外部存储设备 /mnt/
中,而目标目录 /home/user/dest_dir
位于本地硬盘上。mv
会先将源目录中的文件复制到目标目录,然后删除原始文件。
标签:文件,dest,mv,指令,Linux,path,txt,目录 From: https://blog.csdn.net/weixin_43993310/article/details/143961188