linux文件重命名mv和rename

版权声明:转载请声明 https://blog.csdn.net/qq_40732350/article/details/82630694

文件重命名

1.把oldname——》newname,且以“newname”为名字的文件不存在

方法:

用函数:rename(oldname, newname);

用命令:mv oldname newname

2.把oldname——》newname,且以“newname”为名字的文件存在

方法:

用函数:rename(oldname, newname);

用命令:mv oldname newname

但是结果就让人意想不到了:oldname的文件的文件名变为newname,原来的newname文件被删除

可以通过下面的命令验证:

改变之前的oldname的inode号和改变之后的newname的inode一样,

连修改时间都一样

# stat oldname 
  文件:"oldname"
  大小:5             块:8          IO 块:4096   普通文件
设备:801h/2049d    Inode:439817      硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-09-11 18:51:44.576615609 +0800
最近更改:2018-09-11 18:25:01.080719559 +0800
最近改动:2018-09-11 18:58:43.476786928 +0800
创建时间:-
# touch newname
# stat newname 
  文件:"newname"
  大小:0             块:0          IO 块:4096   普通空文件
设备:801h/2049d    Inode:439818      硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-09-11 18:59:53.440798240 +0800
最近更改:2018-09-11 18:59:53.440798240 +0800
最近改动:2018-09-11 18:59:53.440798240 +0800
创建时间:-
# mv oldname newname 
# stat newname 
  文件:"newname"
  大小:5             块:8          IO 块:4096   普通文件
设备:801h/2049d    Inode:439817      硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2018-09-11 18:51:44.576615609 +0800
最近更改:2018-09-11 18:25:01.080719559 +0800
最近改动:2018-09-11 19:00:28.352884996 +0800
创建时间:-

其实这个现象可以结局一个问题:文件系统的延迟分配

可以参考我的博客:

https://blog.csdn.net/qq_40732350/article/details/82630495

猜你喜欢

转载自blog.csdn.net/qq_40732350/article/details/82630694