それぞれ1GBの容量を持つ2つのフラッシュデバイスがあるとします。各デバイスに最大 1 GB のサイズの大容量ファイルが含まれているとします。 RAM(64MB)が制限されており、ハードドライブがないと仮定すると、これら2つのファイルを交換する最も短い方法は何ですか?
私の言うことは:スワップ操作をonに置き、ファイルがa
on the deviceA
とb
on the deviceにあることをB
望むということです。a
B
b
A
私はこれを行うための正確なLinuxツールがないことを知っています。この議論。
私は目標を達成するための最短の方法に興味があります。この方法が長すぎる場合は、ブロックごとにスワップを実行するために独自の専用ソリューションを実装する必要があるかもしれません。
答え1
両方のドライブがいっぱいであるか、ほぼいっぱいである限り、良い解決策があるかどうか疑問です。ただし、ddコマンドを繰り返すことは可能です。それはまるで
#This code is completely untested,
#do NOT just copy paste and use it without proper testing
while [[ $((i*chunkSize)) -lt fileSize ]]; do
dd skip=$i seek=$i bs=$chunkSize count=1 if=fileA of=tmpFileInMemory
dd skip=$i seek=$i bs=$chunkSize count=1 if=fileB of=FileA
dd skip=$i seek=$i bs=$chunkSize count=1 if=tmpFileInMemory of=fileB
done
fileAとfileBのサイズが異なる場合は、いくつかの確認が必要です。