u盘文件出错的问题
最近,我在magic中可能因为没有安全删除U盘导致现在一个U盘的文件在读取时要很长时间。我就在windows中用磁盘扫描程序修复了一下,结果一个600多兆的文件变成了70多兆,估计少了的部分走到了另外一个原本是一个文件夹的文件去,这个原本的空的文件夹成了文件,有500多兆,和哪个变成70多兆的文件加起来,估计与原来600多兆的文件大小相等。请问现在怎样解决呢?一开始的时候,又怎样做才好呢? 没遇到过,不过可以尝试用linux命令连接起来,至于能不能用就不知道了。 photorec 扫描一下然后parted 处理 谢谢回答,我还有一些内容要补充。这个原本600多兆的文件是iso文件,当初出问题时,在linux中列出这个U盘中的内容(大约800兆)要约半分钟,在windows中却很块。我在windows中用磁盘扫描工具修复后,在linux中打开U盘是正常了,但成了现在似乎一个文件分成两部分的情况,这个iso文件也能正常打开,我用原文件和现在的文件对比,大致看了一下,打开后的iso文件里的文件和原文件一样。但现在怎样处理呢?haulm说的用linux命令连接怎样用呢?stdio说得我也不理解。photorec是什么?parted是分区程序吧?又怎么样?
[ 本帖最后由 软用者 于 2008-8-26 16:03 编辑 ] photorec http://www.cgsecurity.org/wiki/PhotoRec
扫描并恢复数据
parted 把USB disk 处理掉,就是重新分区,格式化
iso 分成两部分还能用?
哈哈~:mrgreen:
checksum 了吗?八成是不对的,里面的文件有些也不能用吧?
以前linux 下的usb 设备的确是个问题。 在 linux/unix 中可以使用 join 命令来连接两个文件。它会根据指定栏位,找到两个文件中指定栏位内容相同的行,将他们合并,并根据要求的格式输出内容。该命令对于比较两个文件的内容很有帮助。
语法 join [ -i ][ -a filenumber | -v filenumber ][-1 fieldnumber]
[-2 fieldnumber ][ -o list ][ -e string ][ -t char ]
file1file2主要参数
-i 或 --igore-case 比较栏位内容时,忽略大小写的差异。
-a <1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
-v <1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
-1/-j1 <栏位> 连接[文件1]指定的栏位。栏位从 1 开始,默认为1。
-2/-j2 <栏位> 连接[文件2]指定的栏位。栏位从 1 开始,默认为1。
-j <栏位> 相当于 -1 <栏位> -2 <栏位>
-e <字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
-o <格式> 按照指定的格式来显示结果。
-t <字符> 使用栏位的分隔字符。
--help 显示帮助。
--version 显示版本信息。实例 #合并与分割(sort,uniq,join,cut,paste,split)
(1)sot命令
sort files 许多不同的域按不同的列顺序排序
-c 测试文件是否已经排序
-m 合并两个排序文件
-u 删除所有同样行
-o 存储sort结果的输出文件名
-t 域分隔符,用非空格或tab开始排序
+n :n 为列号,使用此列号开始排序
-n 指定排序是域上的数字分类项
-r 比较求逆
sort -c test.txt 测试文件是否分类过
sort -u test.txt 排序并合并一样的行
sort -r test.txt 以相反的顺序排列
sort -t "/" +2 test.txt 以"/"分隔,第二个域开始分类
(2)uniq命令
uniq files 从一个文本文件中去除或禁止重复行
-u 只显示不重复行
-d 只显示有重复数据行,每种重复行只显示其中一行
-c 打印每一重复行出现次数
-f :n为数字,前n个域被忽略
uniq -f 2 test.txt 忽略前2个域
(3)join 命令
join file1 file2 用来将来自两个分类文本文件的行连在一起
-an,n为一数字,用于连接时从文件n中显示不匹配行
-onm ,连接域,n为文件号,m为域号
-jnm,n为文件号,m为域号,使用其他域作连接域
-t ,域分隔符。用来设置非空格或tab键的域分隔符。
(4)split命令
split -output_file_size intput_filename output_filename
用来将大文件分割成小文件。
-b n,每个分割文件的大小n
-C n,每个分割文件一行最多n字节
-l n,每个分割文件的行数
-n,同-l n
split -10 test.txt 将test.txt分割成10行的小文件
(5)cut 命令
cut -c n1-n2 filename 显示每行从开头算起 n1 到 n2 的文字。
cut -c 3-5 test.txt 显示test.txt中每行从第3到第5个字符
[ 本帖最后由 haulm 于 2008-8-26 20:47 编辑 ] 请问在刚开始的时候,在linux中要用很长时间读盘时,这时在windows中似乎是正常的,要怎样做才正确呢? 有交叉文件链?
这个在 NTFS 和 EXT 里面是正常的。FAT32 是不允许的。
这种错误是可以读取文件的。 你的系统读其他的USB 存储器的时候也是这个样子吗?
回复 #10 stdio 的帖子
不是,只是其中一个U盘出了错。 有谁知道开始读盘有错时怎样正确处理?
页:
[1]