当您将闪存驱动器插入 Ubuntu 时,它会创建一个目录,并将/media/<username>
闪存驱动器名称作为安装点名称。当您卸载该目录时,该目录就会完全消失。
当您mount <x>
在命令行上执行此操作时,您始终需要一个安装点,该安装点必须是现有的目录。不创建文件夹怎么办?一定有办法的。
答案1
在类 Unix 系统上,您始终需要一个目录来使用挂载点。有一些软件,例如automount
和udev
,会自动为您创建目录,但必须存在一个目录才能真正进行安装。
答案2
安装设备意味着通过特定目录使其文件系统可用(挂载点) 附着在以 为根的树上/
。
因此,您始终需要一个现有的目录来用作安装点。如果没有它,您将无法访问已安装的设备。
请注意,用作挂载点的目录不必为空;但是,安装后其旧内容将无法访问。因此,为了避免混淆,设备通常安装在空目录上。
@Kusalananda 的答案提供了一个功能,可以自动创建挂载点并对用户透明,但在幕后目录必须始终存在。
答案3
我认为困惑在于理解管理的自动安装程序/media
。
挂载功能需要一个可以挂载文件系统的目录。自动挂载程序使用与正在挂载的文件系统关联的标签(如果有)创建此目录,然后挂载文件系统本身。稍后,在卸载文件系统后,它会删除该目录。
视觉效果是在没有目录的情况下安装文件系统,我认为这就是您在一般情况下想要实现的目标。不幸的是,正如其他人已经指出的那样,除非通过自动安装程序的技巧,否则这是不可能的。
mkdir /mnt/dsk
mount /dev/sdb1 /mnt/dsk
# ....
umount /mnt/dsk
rmdir /mnt/dsk
答案4
mymount () {
local args=( "$@" )
local dir="${args[-1]}"
test -d "$dir" || mkdir -p "$dir" || exit 1
command mount "$@"
}
在大多数 Unices 上,对于大多数文件系统,该mount
实用程序需要安装点是现有目录。
随着bash
上面的 shell 函数,如果该目录尚不存在,则会创建该目录。调用该函数时,假定挂载点是命令行上的最后一个参数。这使您可以将设备安装在任何地方,而无需手动创建挂载点。
这可能有点像/media/username
在系统上创建挂载点的任何操作。
同样,您可以定义myumount
卸载设备并删除其安装点。
这显然并没有回避目录不能被创建mount
(或被删除umount
)的事实,至少mount
我所知道的实现不能,但它允许您在函数中隐藏目录的创建。
Unix哲学:做一件事,并把它做好。
mount
需要一个目录来安装某些东西。创建此目录是mkdir
.