> ## Content Index
> Fetch the complete content index at: https://linuxhandbook.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# What is /dev/zero in Linux?
- URL: https://linuxhandbook.com/dev-zero/
- Published: 2022-12-21T02:25:42.000Z
- Updated: 2024-05-16T16:53:24.000Z
- Description: One of the special device files in Linux, /dev/zero is used for creating files filled with zeroes.
- Author: Sagar Sharma
- Tags: Explain

In Linux, device files are quite special as they provide applications to interface with device drivers which also include the `/dev/zero`.

So in this article, I will walk you through what it is and why it is used for.

## A Zero Generator of Linux 

Yes, you guessed it right!

The /dev/zero is a dummy file that is used to create files filled with zeroes. 

But why would you want to create a file filled with zeroes? Well, there are various use cases for nuking the file with zeros. Such as:

- Formatting drive and filling space with zeros to override old data.
- Creating dummy files for experiments.
- Creating a temporary swap file.

Sounds interesting. Right?

So let's have a look at how you can use this powerful utility.

## How to use /dev/zero

Here, I will be showing you two use cases of /dev/zero:

1. Formatting disk partitions with zeroes.
2. Creating dummy files.

So let's start with creating a dummy file filled with zeros.

### How to create a dummy file in Linux

To create a dummy file, you would need to follow the given command syntax:

```
dd if=/dev/zero of=Filename bs=Block_Size count=sets_of_blocksize
```

Here,

- `of=Filename` is where you can indicate the path and name of the file you want to create,
- `bs=Block_size` is where you will enter the size of each block such as 1MB.
- `count=sets_of_blocksize` is where you have to specify the count of the block size. such as if you want to create a file worth 1 gigabyte, you will use a 1Mb block and set the count to 1024.

For example, Here I have created a dummy file named `Dummy` worth of 100MB:

```
dd if=/dev/zero of=Dummy bs=1MB count=100
```

![how to create dummy files in Linux](https://linuxhandbook.com/content/images/2022/12/create-dummy-files-in-Linux-1.png)

### How to format drive with zeroes in Linux

⚠️

This process may take quite a long especially if you use using a drive with slow write speeds.

The first step in formatting is to [list available disks in Linux](https://linuxhandbook.com/linux-list-disks/). Here, I have [used the lsblk command](https://linuxhandbook.com/lsblk-command/):

```
lsblk
```

![list available disks in linux](https://linuxhandbook.com/content/images/2022/12/list-available-disks-in-linux.png)

Here, my target disk is `sdb1` mounted at `/media/sagar/Q1`. 

Once you find out the name of the drive you want to work with, you will have to unmount that partition.

This can easily be done using the umount command:

```
umount TargetDrive
```

For me, its `sdb1`:

```
umount /dev/sdb1
```

Now, all you need to do is use the following command to format the disk:

```
sudo dd if=/dev/zero of=TargetDrive bs=1M
```

![format disk with zeroes in Linux](https://linuxhandbook.com/content/images/2022/12/format-disk-with-zeroes-in-Linux.png)

Ignore the error message as you are wiping the disk from the beginning. 

And as you can see, the drive has been formatted successfully!

🚧

It is not advised to use the \`dd\` command to create a file using the \`/dev/zero\` special file on **SSDs*. This is to prevent [write amplification](https://en.wikipedia.org/wiki/Write%5Famplification?ref=linuxhandbook.com) which **negatively impacts* the endurance of an SSD.

## Wrapping Up

I would recommend [using /dev/random](https://linuxhandbook.com/dev-random-urandom/) instead of `/dev/zero` if you want to format the disk and make it a lot harder to recover old data. 

This was a little explanatory guide on how you can use the /dev/zero. I hope you will find this helpful. 

And if you have any queries, let me know in the comments.