我正在用 NTFS(-3G) 和 fstab 做一些实验。对于我对 fstab 所做的每一次更改,我都需要发出:
sudo umount /mountpoint
sudo mount /mountpoint
检查结果。由于我正在进行大量测试,因此每次发出 umount/mount 组合真的很烦人。
有什么方法可以将这两个命令组合在一个remount
脚本中吗?是否已经有任何开关可以做到这一点?
- 我使用的是 Ubuntu 10.10
- 传递给脚本的所有命令行参数都必须“重新传递”给命令
mount
(这样我可以使用-a
、-t type
等) - 优选地,仅最后的参数应该传递给
umount
答案1
在你的 shell 中(假设是 bash 或其他兼容的 shell)运行
function remount() { umount "$1" && mount "$1"; }
现在每当你跑步时remount /whatever
,它都会执行一个umount
,然后执行一个mount
。
如果您关闭 shell,该文件就会过期。因此,如果您希望它持续存在,请将其放入您的.bashrc
、.profile
或任何适用于您的情况的内容中。
答案2
mount <something> -o remount,any_additional_options
但如果您需要更改文件系统类型(例如从 ntfs 到 ntfs-3g),这将不起作用
答案3
您知道可以在命令行上使用 a;
将任意两个命令链接在一起吗?这使得您成对执行的操作非常容易从命令行中的历史记录运行。
umount /path ; mount /path
您可以考虑使用 AND 运算符来连接它们,以便只有 umount 成功时 mount 才会运行,如下所示:
umount /path && mount /path
如果需要,您甚至可以在其中添加编辑器,如下所示:
卸载/路径; vim /etc/fstab ;挂载/路径
驱动器将卸载,您将看到 fstab,当您退出编辑器时,它将再次安装。
除此之外,如果您需要针对多个路径的更通用的解决方案,函数的建议很好。此外,unix 中的任何一系列命令都可以制作成脚本。只需保存一个文本文件,如下所示:
#!/bin/bash
umount /path
mount /path
然后将其设置为可执行:
chmod +x filename
然后像这样运行它:
./filename
答案4
怎么样(未经测试):
function remount() {
eval last=\$$#
umount "$last" &&
mount "$@"
}
您只需在 shell 中复制粘贴该代码或将其附加到您的 .bashrc 中