我遇到LaCie 500GB硬盘出现故障的情况。它只能持续大约10分钟,然后变得无法使用。对于那些10分钟左右,我确实完全掌控了。
我无法快速将我的主要mov文件(160GB)转移出来,所以我在想如果将它分成小块,我可以将它们全部移开。我尝试使用SPLIT命令分割电影文件,但它当然花了超过10分钟。在失败之前,我最终得到了大约14GB的2GB文件。
有没有办法可以使用split命令并跳过任何现有的文件块,所以当我分割这个文件时,它会看到xaa,xab,xac并在该点之后开始,所以它将继续拆分文件与xad?
或者是否有更好的选项可以在多个阶段拆分文件?我也看了csplit,但这似乎也不是一个选择。
谢谢!
-------- UPDATE ------------
现在在bcat和Mark的帮助下,我可以使用以下
来做到这一点dd if=/Volumes/badharddrive/file.mov of=/Volumes/mainharddrive/movieparts/moviepart1 bs=1g count=4
dd if=/Volumes/badharddrive/file.mov of=/Volumes/mainharddrive/movieparts/moviepart2 bs=1g count=4 skip=4
dd if=/Volumes/badharddrive/file.mov of=/Volumes/mainharddrive/movieparts/moviepart3 bs=1g count=4 skip=8
etc
cat /Volumes/mainharddrive/movieparts/moviepart[1-3] -> newmovie.mov
答案 0 :(得分:4)
您始终可以使用dd
命令将旧文件的块复制到新位置。这具有额外的好处,即不对不正确的驱动器进行不必要的写入。像这样使用dd
可能会让这么大的mov文件变得乏味,但你应该能够编写一个简单的shell脚本来自动化部分过程。
答案 1 :(得分:3)
咄! bcat的答案比我的好,但是因为我写了一些代码,我想我会继续发布它。
input = ARGV[0]
length = ARGV[1].to_i
offset = ARGV[2].to_i
File.open "#{input}-#{offset}-#{length}", 'w' do |file|
file.write(File.read input, length, offset)
end
像这样使用:
$ ruby test.rb input_file length offset