![如何检查目录是否安装在光盘 X 上,如果没有安装则安装](https://linux22.com/image/78859/%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E7%9B%AE%E5%BD%95%E6%98%AF%E5%90%A6%E5%AE%89%E8%A3%85%E5%9C%A8%E5%85%89%E7%9B%98%20X%20%E4%B8%8A%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%B2%A1%E6%9C%89%E5%AE%89%E8%A3%85%E5%88%99%E5%AE%89%E8%A3%85.png)
我正在尝试编写脚本来备份我的数据。我对此了解不多,所以我可能会采取错误的方法,但我想做的是对我想要备份的每个目录多次使用 rsync -avh 。但是,我将目标设置为硬编码值 - ~/sbackup/
。现在我希望我的脚本在运行之前检查该文件夹是否已安装,如果没有 - 尝试安装它。因此,脚本逻辑将如下所示:
1)查看我的U盘是否挂载在~/sbackup/
. (光盘 - 如果有办法阻止其他 USB 设备安装在那里就好了)。
2)如果没有,请尝试将其安装在那里。如果不能,请写一条错误消息并退出。
3) 如果已安装,则运行脚本的其余部分。
现在我可以编写错误消息等,但我不确定第一步和第二步的第一部分。
答案1
如果你有一个mountpoint
命令:
mountpoint -q /local/mount/point || mount ...
答案2
当不带参数运行时,mount
返回已安装分区的列表以及有关它们的一些信息,包括它们的安装点。因此,您可以只grep
针对 mount 输出中的挂载点并采取相应措施:
if ! mount | grep -q sbackup; then
mount /dev/sdb1 /home/matthew/sbackup || echo "Couldn't mount" && exit
fi
更改/dev/sdb
为您的 USB 分区和matthew
您的用户名。运行脚本即可sudo
安装。