PS:要转载请注明出处,本人版权所有。
PS: 这个只是基于《我自己》的理解,
如果和你的原则及想法相冲突,请谅解,勿喷。
前置说明
本文作为本人csdn blog的主站的备份。(BlogID=072)
本文发布于 2018-10-11 11:45:26,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=072)
环境说明
system info :Linux 27-generic #32~14.04.1-Ubuntu SMP Fri Jan 22 15:32:26 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
前言
无
问题起因
忘了留截图了。在用winscp传输文件的过程中,突然我去刷新某目录时,出现一个错误,大概是说无法获取.gvfs 的属性。导致目录显示不完,也就是没有刷新完就停止了。
于是我去终端看了一下此文件夹的属性,属性如下:
d????????? ? ? ? ? ? .gvfs/
然后我直接懵逼了,因为我真的是第一次看见这个权限和属性,还有这种操作?
问题原因
然后尝试 rm -rf , chmod, chown ,lsof, fuser 都报错的报错,不行的不行。于是乎去bd上冲了一波浪,有点眉目了,貌似是FUSE(Filesystem in Userspace)的一个bug。但是有点不全面,于是又去gg上冲了一波浪。然后找到了相关的答案:
- FUSE是在用户态实现了一个文件系统,此文件系统作用是把其他网络文件系统或者其他协议文件系统挂载到用户空间。而且,FUSE由于是自己构建文件系统,我们可以设置此文件必须由创建者访问,排除其他所有用访问,包括root。这就尴尬了。
- 而gvfs 是GNOME桌面系统的虚拟文件系统,而此虚拟文件系统是用FUSE实现的。gvfs作用就是你在桌面上点击smb、ftp、sftp等链接地址是,会直接挂载相关的文件系统到本地。而.gvfs 就是这些文件系统的挂载点。
解决方案
由于知道了是gvfs 创建的挂载点,那么通过umount 卸载此挂载点即可。然后可对.gvfs 文件夹进行任何操作了。
后记
无
参考文献
- 无
PS: 请尊重原创,不喜勿喷。
PS: 要转载请注明出处,本人版权所有。
PS: 有问题请留言,看到后我会第一时间回复。