我正在学习tmpfs
. 手册页tmpfs
说-
tmpfs 工具允许创建其内容驻留在虚拟内存中的文件系统。
和 -
如果卸载了 tmpfs 文件系统,则其内容将被丢弃(丢失)。
但即使在卸载后我也可以看到文件 -
mediumone@ubuntu:~$ mkdir tmpfsdir
mediumone@ubuntu:~$ cd tmpfsdir/
mediumone@ubuntu:~/tmpfsdir$ sudo mount -t tmpfs tmpfs ~/tmpfsdir/
mediumone@ubuntu:~/tmpfsdir$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda1 ext4 rw,relatime,errors=remount-ro
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755
..snip
├─/snap/gnome-3-28-1804/116 /dev/loop15 squashfs ro,nodev,relatime
└─/home/mediumone/tmpfsdir tmpfs tmpfs rw,relatime
mediumone@ubuntu:~/tmpfsdir$ echo "hello world" >> hello
mediumone@ubuntu:~/tmpfsdir$ ls -l
total 4
-rw-r--r-- 1 mediumone mediumone 12 Feb 17 02:15 hello
mediumone@ubuntu:~/tmpfsdir$ sudo umount -l ~/tmpfsdir/
mediumone@ubuntu:~/tmpfsdir$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda1 ext4 rw,relatime,errors=remount-ro
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security securityfs securityfs rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,mode=755
..snip
└─/snap/gnome-3-28-1804/116 /dev/loop15 squashfs ro,nodev,relatime
mediumone@ubuntu:~/tmpfsdir$ ls -l
total 4
-rw-r--r-- 1 mediumone mediumone 12 Feb 17 02:15 hello
mediumone@ubuntu:~/tmpfsdir$ cat hello
hello world
mediumone@ubuntu:~/tmpfsdir$
我也试过sudo umount -f ~/tmpfsdir/
了,我得到了同样的结果。
有人可以解释出了什么问题吗?
您安装在当前目录上。您的 shell 将继续使用原始目录而不是挂载的目录,直到您
cd
返回该目录。其他命令也将继承原始目录:但是,对目录的全新访问将使用已安装的目录:
如果你
cd
再次这样做:什么时候
cd
第tmpfsdir
一次,你的 shell 的工作目录在现有的文件系统上。mount
不会更改您的工作目录,并且新文件是在您的工作目录所在的底层文件系统上创建的,而不是在tmpfs
文件系统上。挂载后更改目录,您将获得预期的结果。