简明Linux命令行笔记:mv
重命名、覆盖或移动文件
mv [options] existing-file new-filename
mv [options] existing-file-list directory
mv [options] existing-directory new-directory
参数
第一种形式:existing-file 是需要重命名的文件路径; new-filename 是文件的新路径名,用于重命名或覆盖
第二种形式:existing-file 是需要移动的文件路径列表; directory 是文件需要移动到的新目录,用于移动
第三种形式:existing-file 是需要重命名的目录路径; new-directory 是目录的新路径名,用于重命名或覆盖
选项
-b 如果已存在相同文件名,则覆盖前进行备份
-f 如果已存在相同文件名,而用户不具有写的权限,则强制覆盖
-i 如果已存在相同文件名,覆盖前提示用户进行确认
-u 比较原文件与目标文件修改时间,如果目标文件较新则不覆盖
-v 列出所有被移动或重命名的文件
示例
mv
$ mv demo1.txt demo2.txt $ ls demo2.txt
重命名文件
mv -i
$ ls demo2.txt demo.txt $ mv demo2.txt -i demo.txt mv:是否覆盖"demo.txt"? y
对已存在的文件覆盖前进行确认,y或Y开头的字符串表示确定,其余任意字符表示否定
mv 不具备写权限的文件名
$ ls -l 总用量 0 -rw-r--r-- 1 root root 0 1月 8 13:31 cc -rw-r--r-- 1 siu siu 0 1月 8 13:24 dd $ mv dd cc mv:是否覆盖"cc",而不理会权限模式0644 (rw-r--r--)? y $ ls cc
此处cc的所有人和组都是root,而我当前用户是siu,覆盖时会要求确认
mv -f 不具备写权限的文件名
$ ls -l 总用量 0 -rw-r--r-- 1 root root 0 1月 8 13:34 aa -rw-r--r-- 1 siu siu 0 1月 8 13:34 bb $ mv bb -f aa $ ls aa
与上面一样,只不过此处加了 -f 选项,覆盖时强制执行而不提示
mv 移动目录
$ ls abc cde $ mv cde abc $ ls abc $ cd abc/ $ ls cde
此处将cde目录移动到abc目录中
mv 重命名目录
$ ls abc $ mv abc dir $ ls dir
此处将abc目录重命名为dir目录,mv abc ../可将abc移动到父目录,此处灵活多变
mv -u
$ ls -l 总用量 0 -rw-r--r-- 1 siu siu 0 1月 8 13:43 time1.txt -rw-r--r-- 1 siu siu 0 1月 8 13:44 time2.txt $ mv time1.txt -u time2.txt $ ls time1.txt time2.txt
确认修改时间再判断是否覆盖,此处time2.txt的修改时间比time1.txt的修改时间新,所以覆盖失败
mv -v
$ mv time1.txt -v time2.txt "time1.txt" -> "time2.txt" $ ls time2.txt
列出移动或覆盖时的信息
mv -b
$ mv -b aa.txt bb.txt $ ls bb.txt bb.txt~
覆盖时进行备份,所备份的文件尾部有个~
Tips
1.在Linux中,覆盖和重命名的概念几乎是一样的,没有Windows中所谓的rename这一说法
2.选项你可以写在任意位置,可以mv aa -v bb,也可以 mv -v aa bb,还可以 mv aa bb -v
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构