コマンドラインを使用してファイルを切り取る方法は?

コマンドラインを使用してファイルを切り取る方法は?

次のPythonコードに対応するコンソールは何ですか?

target = file("disk", "w")    # create a file
target.seek(2*1024*1024*1024) # skip to 2 GB
target.write("\0")
target.close()

たぶんdd注文ですか?仮想化などの目的で、見かけのサイズが2GBのファイルを作成するのがアイデアです。

kvm disk -cd whatever.iso #Only allocate space as necessary

答え1

次のコマンドを使用してスパースファイルを生成できますdd

dd of=file bs=1 seek=2G count=0
$ du file
0       disk
$ du --apparent-size file
2097152 disk

答え2

一般的に言えば;を使用しますddが、KVM仮想化を使用している場合は、次のことをお勧めしますqemu-img

qemu-img create -f raw disk 2G

ddChris Downの回答のコマンドと同じことを行います。

fallocateどのコマンドを使用しても仮想化内で使用するには、断片化を防ぎ、パフォーマンスを向上させるために事前に割り当てられたブロックを使用することをお勧めします。

fallocate -l 2G disk

ただし、すべてのプラットフォームとファイルシステムで使用できるわけではありません。これは、ゼロを書かずにファイルを拡張する必要があるたびに要求時に実行するのではなく、ファイルにブロックを割り当てるだけです。

答え3

GNUtruncateコマンドも参照してください。

truncate -s 2G some-file

関連情報