mkfile - Linux


The mkfile command in Linux is used to create a file of a specified size and is typically utilized for testing transfers or the performance of file systems. It quickly creates a file with a defined size filled with zeros.


The basic syntax of the mkfile command is:

mkfile [options] size filename
  • size specifies the size of the file. It can be indicated in bytes, kilobytes (k), megabytes (m), and gigabytes (g).
  • filename is the name of the file to be created.


Here are the common options available for the mkfile command:

  • -n: This flag prevents the creation of a new file if it already exists.
  • -v: Enables verbose mode, which will output detailed information about the file creation process.

Typical usage often involves just specifying the size and file name, as most defaults are sufficient for typical tasks.


  1. Create a simple file of 100 megabytes:

    mkfile 100m testfile.dat

    This command will create a 100 MB file named testfile.dat filled with zeros.

  2. Create multiple files at once:

    mkfile 1g file1.dat 500m file2.dat

    This command creates a 1 GB file named file1.dat and a 500 MB file named file2.dat.

  3. Using verbose mode to see more details:

    mkfile -v 10m verbose_testfile.dat

    Verbose mode will provide step-by-step output of the file creation process.

Common Issues

  • Insufficient disk space: Users might encounter errors if there isn’t enough available disk space. Always ensure enough space is available before trying to create large files.
  • Permission issues: Running the command in directories where the user does not have write permissions will lead to errors. Ensure you have the necessary rights, or run with sudo if appropriate.


mkfile can be used with other commands for scripting and managing system tasks. For example:

  • Create a file and immediately archive it:
    mkfile 100m tempdata.dat && tar -czvf tempdata.tar.gz tempdata.dat

    This will create a temporary file and then compress it into a tar.gz archive.

  • dd: Often used as an alternative for creating files with specific sizes, dd can copy and convert raw data.
  • fallocate: A command to manipulate the allocated disk space for a file, typically faster for creating large files.
  • touch: Commonly used to create an empty file or change file timestamps.

For further reading and more detailed information, the Linux manual pages (man mkfile, man dd, etc.) can be consulted. Additional resources are also available on most Linux distribution repositories and documentation websites.