# tmpfs

我们使用`df`命令时经常会看到带有`tmpfs`的行，tmpfs是什么呢？tmpfs是一个将所有文件和文件夹写到虚拟内存中而不是实际写到磁盘中的虚拟文件系统。这意味中tmpfs中所有的内容都是临时的，在tmpfs卸载、系统重启或者电源切断后内容都将会丢失。

比如，我创建了一个目录`/peng/tmpfs`，然后我往这个目录下读写内容，我希望这些内容的读写速度快一些。那么，我可以把这个目录挂载到内存中，而不是挂载到硬盘的某个分区中。只是如果挂载到内存中的话，主机重启后，这个目录下内容将会丢失。接下来，我们来动手实践一下上面的操作。

首先，新建目录`/peng/tmpfs1`，然后在内存中分配一个大小为500M的虚拟文件系统并将其挂载到目录`/peng/tmpfs1`下。我们发现，挂载成功了。

```
[root@qiaojing102 ~]# mkdir -p /peng/tmpfs1
[root@qiaojing102 ~]# mount -t tmpfs -o size=500M tmpfs1 /peng/tmpfs1
[root@qiaojing102 ~]# df -hT
Filesystem          Type      Size  Used Avail Use% Mounted on
// ignored rows
tmpfs1              tmpfs     500M     0  500M   0% /peng/tmpfs1
```

接着，我们在该目录下创建一个10M的文件，然后查看目录的大小发现只剩490M了。如果重启主机，那么刚才创建的文件就会消失，因为它是存在内存中的。

```
[root@qiaojing102 ~]# dd if=/dev/zero of=/peng/tmpfs1/file1 bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00401947 s, 2.6 GB/s

[root@qiaojing102 ~]# cd /peng/tmpfs1/

[root@qiaojing102 tmpfs1]# ls -lh
total 10M
-rw-r--r--. 1 root root 10M Dec  1 15:22 file1

[root@qiaojing102 ~]# df -hT
Filesystem          Type      Size  Used Avail Use% Mounted on
// ignored rows
tmpfs1              tmpfs     500M   10M  490M   2% /peng/tmpfs1
```
