文件重命名
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
创建时间:-
其实这个现象可以结局一个问题:文件系统的延迟分配