GNU/Linux >> Linux の 問題 >  >> Linux

コマンドラインから特定のサイズのファイルを作成するにはどうすればよいですか?

truncate を使用 :

truncate -s 14M filename

man truncate から :

DESCRIPTION
   Shrink or extend the size of each FILE to the specified size

[...]

 -s, --size=SIZE
          set or adjust the file size by SIZE

注:truncate お使いのシステムでは利用できない場合があります。 Mac OS X では、デフォルトではインストールされません (ただし、macports などを使用して簡単にインストールできます)。このような場合、dd を使用する必要があるかもしれません または head


編集:最も簡単な方法はおそらく truncate です Ashutosh Vishwa Bandhuの答えの、しかし@ offby1によって指摘されたように、それはあなたが望むものではないかもしれないスパースファイルを作成します。以下のソリューションでは、通常の完全なファイルが作成されます。

次のコマンドは、foo という 14MB のファイルを作成します。 :

<オール>
  • fallocate (コメントで提案した @Breakthrough に感謝し、以下の Ahmed Masud の回答に投票してください。)

    fallocate -l 14000000 foo
    

    このコマンドは truncate と同じ速さなので、特に印象的です (瞬時に)必要なファイルサイズに関係なく(大きなファイルの場合は遅くなる他のソリューションとは異なり)、スパースファイルではなく通常のファイルを作成します:

    $ truncate -s 14MB foo1.txt 
    $ fallocate -l 14000000 foo2.txt 
    $ ls -ls foo?.txt 
        0 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:54 foo1.txt
    13672 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:55 foo2.txt
    
  • ランダム データで満たされたファイルを作成します

    dd if=/dev/urandom of=foo bs=14MB count=1
    

    または

    head -c 14MB /dev/urandom > foo
    
  • \0 で満たされたファイルを作成します s:

    dd if=/dev/zero of=foo.txt bs=14MB count=1
    

    または

    head -c 14MB /dev/zero > foo
    
  • 別のファイルの最初の 14MB のデータで満たされたファイルを作成します:

    head -c 14MB bar.txt > foo
    
  • 別のファイルの最後の 14MB のデータで満たされたファイルを作成します:

    tail -c 14MB bar.txt > foo
    
  • 上記のすべての例では、ファイルは 14*1000*1000 になります。 14*1024*1024 が必要な場合 、 MB を置き換えます M で .例:

    dd if=/dev/urandom of=foo bs=14M count=1
    head -c 14M /dev/zero > foo
    

    fallocate バイト単位でのみ処理するため、(14*1024*1024=14680064) する必要があります

    fallocate -l 14680064 foo
    

    dd bs=1MB count=14 if=/dev/zero of=<yourfilename>
    

    警告 dd 何でも黙って上書きします 自発的にまたは偶然に指定した場合は、書き込みの権利があります。 dd を理解していることを確認してください 、例えば。 dd --help を読んで 、および dd コマンドラインを台無しにしないでください。そうしないと、元に戻せないデータ損失を簡単に作成できます-合計でも .

    まず、if= 入力ファイルです と of= 出力ファイルです . 常に コマンドを実行する前に、それが正しいことを再確認してください。 :)


    Linux
    1. Linuxで特定のサイズのファイルを作成するには、fallocateコマンドを使用します

    2. Linuxコマンドラインでファイルから特定の行を削除する

    3. Linuxで特定のサイズのファイルを作成するには?

    1. コマンドラインでスクリプトから関数を実行するにはどうすればよいですか?

    2. Linuxでjar内のファイルをコマンドラインに置き換える方法は?

    3. emacs/vi/vim を使用してコマンドラインからファイルを読み取り専用で開くにはどうすればよいですか

    1. このコマンドライントリックでPDFサイズを縮小する

    2. Linuxコマンドラインでファイルの特定の行を表示する方法

    3. Linux でコマンドラインを使用して起動可能な ISO から起動可能な USB を作成する方法は?