博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux mv命令:重命名文件
阅读量:4189 次
发布时间:2019-05-26

本文共 2063 字,大约阅读时间需要 6 分钟。

目录


 

描述

在Linux中,重命名文件被称为移动(moving)。mv命令可以将文件和目录移动到另一个位置或重新命名。

 

使用示例

重命名文件

mv 

例如将当前目录下的flavor.pb.go重命名为flavor.go:

$ ll | grep flavor-rw-r--r--    1 root  staff  35644  6 11 12:57 flavor.pb.go$ mv flavor.pb.go flavor.go$ ll | grep flavor-rw-r--r--    1 root  staff  35644  6 11 12:57 flavor.go

❗ 注意:移动文件会将文件名从flavor.pb.go更改为flavor.go,但inode编号和时间戳保持不变。这是因为mv只影响文件名。

 

移动文件位置

也可以使用mv来移动文件位置。mv  <file_name>  <target_directory>

我们将/home/cloudadmin/test.log 移动到/tmp 目录下:

$ lltotal 4drwxr-xr-x. 3 cloudadmin root        4096 Aug 28 14:48 cache-rw-r-----. 1 cloudadmin cloudadmin     0 Sep 21 15:30 test.log$ mv test.log /tmp/$ lltotal 3drwxr-xr-x. 3 cloudadmin root        4096 Aug 28 14:48 cache$ ll /tmptotal 3-rw-r-----. 1 cloudadmin cloudadmin   0 Sep 21 15:30 test.log

同上一节一样,这个操作没有改变文件的inode编号或时间戳。

 

移动文件并修改名称

使用 mv <file> <new_file_name> 来移动文件并修改文件名称。

$ lltotal 4drwxr-x---. 2 root root 4096 Oct 28 17:10 desktop-rw-r-----. 1 root root    0 Oct 28 17:10 test.c$$$ mv test.c desktop/run.c$ cd desktop/$ lltotal 0-rw-r-----. 1 root root 0 Oct 28 17:10 run.c

同理,此时mv仅仅影响文件名,inode编号和时间戳保持不变。

 

查看命令手册

使用 man mv 查询mv命令手册。

$ man mv

 

注意事项

移动不存在的文件或目录

尝试移动一个不存在的文件或目录时,mv报错No such file or directory。

$ lltotal 0-rw-r-----. 1 admin admin 0 Oct 28 17:10 run.c$ mv main.go ../mv: cannot stat ‘main.go’: No such file or directory

目标路径不存在

当要移动的目标路径不存在时,mv报错Not a directory。

$ mv run.c $HOME/func/mv: cannot move ‘run.c’ to ‘/home/admin/func/’: Not a directory

目标路径存在同名文件/目录

例如,假设要将当前目录下的一个名为“run.c”的文件移动到desktop目录下。可是desktop目录下已经存在一个名为"run.c"的文件了。如果此时使用mv移动,那么mv会将当前目录下的run.c移动到desktop目录下,并将原有存在的../desktop/run.c文件覆盖掉。

$ lltotal 4drwxr-x---. 2 admin admin 4096 Oct 28 17:11 desktop-rw-r-----. 1 admin admin    0 Oct 28 17:28 run.c$ mv run.c desktop/run.c$ cd desktop/$ lltotal 0-rw-r-----. 1 admin admin 0 Oct 28 17:28 run.c

观察上面例子中文件前后的时间戳可以得知文件已经被替换掉了。那么如何防止文件被不小心的替换呢?

我们可以使用mv命令的 -i参数。这样在命令试图覆盖已有文件时,你就会得到提示:

$ lltotal 4drwxr-x---. 2 admin admin 4096 Oct 28 17:29 desktop-rw-r-----. 1 admin admin    0 Oct 28 17:31 run.c$ mv -i run.c desktop/mv: overwrite ‘desktop/run.c’?

 

转载地址:http://ucsoi.baihongyu.com/

你可能感兴趣的文章
商业模式重在简单和可操作性
查看>>
CSDN英雄会上会英雄
查看>>
调试技术能够让新技术的学习事半功倍
查看>>
系统集成项目招标要诀
查看>>
1.0.61.686 版发布
查看>>
PHP开发框架的现状和展望
查看>>
不一样的敏捷开发实践
查看>>
为什么 FleaPHP 使用 Table Data Gateway 代替 Active Record 来提供数据库访问服务
查看>>
学习 REST
查看>>
FleaPHP 的 Ajax 支持和 WebControls
查看>>
无知者无畏!
查看>>
FleaPHP 开发指南 - 7. 数据表关联
查看>>
FleaPHP 开发指南 - 6. 访问数据库
查看>>
FleaPHP 开发指南 - 5. 应用程序设置
查看>>
FleaPHP 开发指南 - 4. 命名规范和目录结构
查看>>
FleaPHP 开发指南 - 3. 应用程序入口
查看>>
FleaPHP 开发指南 - 1. 开始前的准备工作
查看>>
实际采用 FleaPHP 的网站
查看>>
经常问到的问题 (FAQ)
查看>>
关于 FleaPHP
查看>>