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

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/735818

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

关于文件的命名在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上能正常识别出来。

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

 

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/735818

时间: 2024-09-19 09:01:02

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

Windows和Linux下生成以当前时间命名的文件

  生成以当前时间命名的文件对于当今两大主流系统都十分有用,在 Windows.Linux 操作系统,分别利用BAT批处理文件和Shell脚本,生成类似"20110228_082905.txt"以"年月日_时分秒"命名的文件. Windows BAT批处理文件: @echo off set time_hh=%time:~0,2% if /i %time_hh% LSS 10 (set time_hh=0%time:~1,1%) set filename=%date:

windows与linux系统互相拷贝文件

借助 PSCP 命令可以实现文件的互拷: 1.下载pscp.exe 文件 2.如果想在所有目录可以执行,请更改环境变量. windows执行指令时直接到这些目录去寻找可执行文件. 设置环境变量的方法: 我的电脑->属性->高级->环境变量 里面有用户变量和系统变量两种.用户变量当然是只有当前用户才能使用的,系统变量是所有用户都能使用的. 我们就编辑用户变量中的变量名为PATH的变量. 点击"编辑"后发现变量值就是用分号";"隔开的路径名,在这里加上

线程-windows 和 linux 网络编程文件传输

问题描述 windows 和 linux 网络编程文件传输 windows 两个线程,linux 两个进程,现在想传输一个文件,windows 这边其中的一个进程传一部分,剩下的由另外的一个进程来传.有什么好的方法吗?找了好多可是都没有相关的资料.谢谢大家. 解决方案 就是socket通信传递,windows做客户端,linux做服务端 解决方案二: Linux与Windows下文件传输windows到linux的文件传输linux 和 windows 文件传输

windows和linux的tcp套接字编程实例代码

windows下面的代码如下面 //Server.cpp #include <iostream> #include <windows.h> #define IP "127.0.0.1" #define PORT 8888 #pragma comment(lib,"ws2_32.lib") using namespace std; char* GetTime(); int main() {     WSADATA wsaData;     WO

OpenSSH最流行的文件传输和远程登录Linux应用程序

OpenSSH是最流行的文件传输和远程登录Linux应用程序之一,它提供了多种在客户端和服务器之间建立加密的远程终端和文件传输连接的方式. OpenSSH Secure http://www.aliyun.com/zixun/aggregation/16458.html">Copy (SCP) 和 Secure FTP (SFTP) 程序是FTP的安全替代品, 同时Secure Shell (SSH) 常常被用作是TELNET的一个默认替代程序.OpenSSH 并不局限于Linux系统:

Windows 到 Linux 之旅: 第 6 部分. 使用分区和文件系统

http://www.ibm.com/developerworks/cn/linux/l-roadmap/part6/index.html   在 Linux 中文件和存储设备的使用与 Windows 中不同.虽然同样有文件和分层目录结构,但是除此以外您还需要建立一种不同的思维方式. / |-- bin |-- boot |-- dev |-- etc |-- mnt |-- opt | |-- IBM | | |-- WebSphereStudio | | `-- db2 | |-- IBMH

Windows及Linux平台下的计时函数总结

本文对Windows及Linux平台下常用的计时函数进行总结,包括精度为秒.毫秒.微秒三种精度的各种函数. 比如Window平台下特有的Windows API函数GetTickCount().timeGetTime().及QueryPerformanceCounter(), Linux平台下特有的gettimeofday()函数,以及标准的C/C++函数time()和clock().下面分别对此进行简单介绍并附上示例代码. 通用的C/C++计时函数time()和clock() time_t ti

Oracle exp query条件检索在WINDOWS和LINUX下的命令区别

今天因为业务需要,运行了EXP的条件导出,发现WINDOWS和LINUX下有些差别,主要区别在于敏感字符,实例如下: LINUX: exp us/pass TABLES=\(t_ec_event\) file=/tmp/test.dmp QUERY=\"WHERE eventid =\'40288a2627f491080127fab7f17232b4\'\" WINDOWS: exp us/pass@test TABLES=(t_ec_event) file=test.dmp QUER

Windows与Linux换行符差别所引起的问题的解决方法

  windows和linux下的换行符是不同的.一般操作系统上的运行库会自动决定文本文件的换行格式. 如一个程序在windows上运行就生成CR/LF换行格式的文本文件,而在linux上运行就生成LF格式换行的文本文件. 在一个平台上使用另一种换行符的文件文件可能会带来意想不到的问题, 特别是在编辑程序代码时. 有时候代码在编辑器中显示正常, 但在编辑时却会因为换行符问题而出错. 很多文本/代码编辑器带有换行符转换功能, 使用这个功能可以将文本文件中的换行符在不同格式单互换. 在不同平台间使用