windows 在文件打开时不可修改文件名是出于什么考虑

2015-03-28 16:57:43 +08:00
 EXDestroyer

我听说mac os是可以的,不知道微软这样做有什么目的,按理说,文件名和内容都应该属于可编辑的部分?

2877 次点击
所在节点    问与答
13 条回复
hjc4869
2015-03-28 17:24:43 +08:00
然后Unix下一个程序执行着执行着就不知道它自己叫什么了。
wheatcuican
2015-03-28 17:28:05 +08:00
@hjc4869 好喜感。2333
Orzzzz
2015-03-28 17:45:34 +08:00
以下为个人推敲,如有错误还请大家帮忙指正,谢谢。

windows下可能没有swp机制吧,在unix下进行文件操作并不是直接操作文件,而是打开了一个缓冲文件,也可以看做是备份文件,如果用vim的话就可以很清楚的看到一个隐藏文件并且后缀名为swp,用gedit就会看到后缀名为~的文件。结束操作的时候会将操作写入到文件中,更改修改时间等等。
我也测试了很多编辑器,打开文件的时候更改了名字,保存,会产生一个新的文件,文件名与源文件相同。
如果是系统不允许更改的,大概就是sock文件了,那些都是锁起来的,不能更改。大概windows下的所有文件在打开的时候都上了锁吧。

windows下的文件备份,从来就没有linux下的好。这也是我不用windows的原因。
9hills
2015-03-28 17:58:46 +08:00
@Orzzzz 那是某些特殊程序的处理,和操作系统没关系。。
hjc4869
2015-03-28 18:04:41 +08:00
@Orzzzz 用Windows下的vim打开也是会有的。
Linux下也可以锁文件,只是默认不锁而已。
typcn
2015-03-28 18:08:00 +08:00
对服务器软件平滑升级有很大帮助
endrollex
2015-03-28 18:16:54 +08:00
Win试了下,打开时可以修改文件名的啊,mspaint,notepad都没问题
EXDestroyer
2015-03-28 18:26:44 +08:00
@endrollex 我其实想说的是word excel或者其他一些文件
Orzzzz
2015-03-28 18:33:58 +08:00
@9hills
@hjc4869
好吧,谢谢你们。
zhjits
2015-03-28 18:37:09 +08:00
有些软件打开文件的时候会上锁
billlee
2015-03-28 19:28:10 +08:00
@endrollex 那是那些软件一次性读取完文件后就把文件关掉了,
msg7086
2015-03-29 08:44:45 +08:00
#3 @Orzzzz 基本是错的。

Linux下打开文件只涉及inode而不涉及目录表项,所以只要锁inode就行了。
文件名属于目录表项里的记录,可以随便改的,删除也可以,因为只是删除记录而非销毁文件。

Windows下则是以目录表项为单位,一锁就把文件的硬链地址给锁了。
最恶心的是如果一个文件有两个硬链接,一个A一个B,如果A被打开了,我连B都删不了,简直坑。
Orzzzz
2015-03-29 13:45:14 +08:00
@msg7086 已送出感谢~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179958

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX