大家都知道在数字计算机领域内指的文件在磁盘上的存储是依赖于文件的命名的。

关于文件的命名在Windows平台和Linux平台式不一样的。比如说,Linux系统对文件名称的大小写字母敏感,而Windows不敏感。详情请查阅“Windows操作系统文件命名规范”和“Linux操作系统文件命名规范”两个关键词。

昨天我偶然的机会处理了一个在RHEL6.1操作系统上的EXT4分区中的文件夹,这个文件夹盛放的是一个标准用户的Home目录(家目录)。在执行备份过程中,我错误的将其备份(复制)到一个NTFS分区的磁盘中,然后用Windows Server 2008 R2操作系统打开了这个分区。但是我马上认识到了错误,既然已经造成了这个错误就趁机看看Windows是如何处理这个目录的。

下面是此目录(此目录假设以home命名)在EXT4文件系统中的部门文件结构。

/home

根目录中有两个文件夹

/home/workspace

/home/Workspace

两个文件夹中的文件不相同

分别为

/home/workspace/documentcatalog/computing

/home/workspace/documentcatalog/cloudcomputing

/home/Workspace/cprograming_desigan/chroot.c

/home/Workspace/cprograming_desigan/a.out

结果当将这个磁盘连接到Windows系统时,首先系统没有报错,可以正常访问磁盘。

接下来我有意识的打开根目录,发现了这个目录中的确有两个文件夹/home/workspace和/home/Workspace,但是当我要访问这两个文件夹时,奇妙的现象就出现了。

结果令我感到很震惊,两个目录中的文件完全相同。所谓的完全就是时间、权限和属性都是完全一样的。

那么没有出现的那些文件哪里去了呢?我还能够正常访问它们吗?

结果肯定是不能。

然后我尝试了复制这个目录(home),发现复制成功,但是不能粘贴,粘贴是有效的,但是实际上执行粘贴命令后没有任何反应。

怎么办?

首先我考虑到了Windows平台中的使用工具CHKDSK,

我在CMD中执行了chkdsk /f G:(假设磁盘分区分配的符号为G:)。

果然在意料之中出现了各种扫描到的错误,都是关于文件索引的错误(可惜我当时忘记了截图)。

当修复完成后,发现可以正常的使用该磁盘分区了。

但是后来遇到的结果依然令我惊讶!原来,CHKDSK这一工具将有以上错误的目录和文件全部都“清除了”!我发现不任何原先有类似错误的文件的位置。

这肯定是我不希望看到的。

当时我很惊恐,因为所备份的磁盘的备份在另一台远程计算机的磁盘上,且处于保护(没有实现共享,即其他主机不可见)状态,而里面又有我当天需要使用的文件。

怎么办?

我想切换到RHEL环境中再试一试,但想了想这个方案不可行,因为Windows已经修复并保存了磁盘的文件系统。

尝试文件恢复?使用文件恢复工具?这个在Windows Server平台上又没有支持较好的软件,这也是一大缺憾。应该是兼容性吧!测试了几次,效果依然不太好。

此刻我又想到了,每次运行CHKDSK这一工具后都会在其分区中产生FOUND.000文件夹,我查看了一下此文件夹中的文件和目录,正好有我要寻找的目录和文件。只是存在错误的目录或文件名称全都变了。总之还好,在RHEL上能正常识别出来。

这次的事故让我体会到了平时关于在文件的命名和备份分区的选择上的注意事项。当当前计算环境中有多个不同的操作系统或者分区类型时就应该本着通吃通用的原则,以保证文件的可用性。




本文转自 urey_pp 51CTO博客,原文链接:http://blog.51cto.com/dgd2010/735818,如需转载请自行联系原作者

关于文件的存储——windows和Linux比较相关推荐

  1. linux windows文件 编码_Mac, Windows和Linux电脑之间如何快速传输文件

    Mac, Windows和Linux电脑之间如何快速传输文件 本文介绍的方法主要适用于在家庭环境中的多台电脑之间快速传输文件,比如家中有三台电脑分别是Windows, Mac和Linux系统,如果传输 ...

  2. python传文件_Python实现Windows和Linux之间互相传输文件(文件夹)的方法

    项目中需要从Windows系统传输ISO文件到Linux测试系统,然后再Linux测试系统里安装这个ISO文件.所以就需要实现如何把文件从Windows系统传输到Linux系统中. 在项目中使用了ps ...

  3. linux用户间文件互传,windows和linux间互传文件

    方法1:Xshell传输文件 用rz,sz命令在xshell传输文件 很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz 首先你的Ubuntu需要安 ...

  4. Linux 大文件crc计算,Windows和Linux下使用MD5、SHA1、CRC32校验备份文件的完整性

    因为经常会用到备份加密压缩过的数据到不同的服务器,然而这些服务器是否可靠,服务器的提供者是否值得信任,为了保证文件的完整性不被篡改,也为了多个地方存储的同一个大文件的备份自己能够快速的识别出来是否是同 ...

  5. win 复制linux文件命令行,windows与Linux间远程拷贝文件(pscp命令)

    (一)上传 1.开始→运行→cmd进入到dos模式 输入以下命令 pscp D:\java\apache-tomcat-5.5.27\webapps\szfdc.rar dev@192.168.68. ...

  6. linux头文件与windows头文件,socklen_t在windows和linux平台下的头文件定义

    5-udev多路径 udev多路径 查看scsi的唯一标识符 用这个计算机可以识别 重启服务 想要看到下面的,可能重启服务也不行,那就需要重启计算机了 虚拟磁盘 安装这个包multipath 重启服务 ...

  7. windows linux 传文件_2种windows到linux上传文件的方法

    lrzsz方式上传文件 首先安装lrzsz包 [root@localhost ~]# yum install -y lrzsz ftp方式上传文件 [root@localhost ~]# yum in ...

  8. Python程序编译为动态库pyd或so (适用于Windows和Linux)

    Welcome to My Blog 文章唯一地址:https://blog.csdn.net/REAL_liudebai/article/details/125126432 问题:   1)Pyth ...

  9. python windows和linux路径_python复制文件,路径不存在问题(Windows和linux路径分隔符不统一)...

    问题: python脚本涉及到复制文件,而我们需要兼容Windows.linux和mac环境 (Windows和linux的路径分隔符不同:通过os.path.sep查看分隔符) 如果用[路径名+os ...

  10. linux cp 中文文件名,linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决...

    linux中,我的LC_ALL环境是zh_CN.gbk. 当我把中文文件名文件cp到windows的fat32盘下后,重起进入windows后发现文件名全是乱码. 首先google,baidu了下,发 ...

最新文章

  1. 基于Autoencoder的反欺诈数据集的异常检测
  2. Mybatis 配置文件
  3. Boost:boost::asio模块的allocation service分配服务测试程序
  4. 【渝粤教育】广东开放大学 知识产权法 形成性考核 (34)
  5. 高级java技术web组件_(重温)JavaWeb--Servlet技术(二)(JavaWeb 的三大组件之一)...
  6. 备份恢复,DBA最后一道防线,你完全掌握了吗?
  7. 天正lisp文件路径_AutoCAD的文件组织形式和搜索路径 | 坐倚北风
  8. 阿里云官方推出操作系统“等保合规”镜像 -- Alibaba Cloud Linux 等保2.0三级版
  9. pycharm多行代码同时注释、去除注释
  10. 原创 | 职场二十年(一)电话风波
  11. rdesktop 访问windows remote desktop
  12. 部署阿里云服务器的具体步骤
  13. 人工智能研究的内容:_更深入:人工智能研究的思想史
  14. mysql聚簇索引和非聚簇索引
  15. 基于图卷积网络的测量与先验知识相结合的故障诊断方法
  16. tcl卸载会怎么样 tvac_TCL电视怎么样,如何安装卸载第三方应用
  17. 多台电脑/多系统共享键鼠神器(synergy)安装与使用
  18. 初中英语多词性单词怎么办_初中英语单词十大分类 你掌握多少?
  19. github上star最多的抢火车票软件教程
  20. 期货交易有哪些策略?

热门文章

  1. HDU1029 Ignatius and the Princess IV
  2. ABP源码分析五:ABP初始化全过程
  3. gitgrab.sh
  4. JSF使用HTML5的custom attribute
  5. RedHat搭建DHCP服务器
  6. Cacti监控Varnish
  7. Android 四大组件学习之ContentProvider一
  8. Android 9.0 HIDL接口添加
  9. Java的GUI学习六(Action事件)
  10. 内部矩阵维度必须一致simulink_为何选择矩阵式KVM切换器及其原理