如何检查目录是否安装在光盘 X 上,如果没有安装则安装

如何检查目录是否安装在光盘 X 上,如果没有安装则安装

我正在尝试编写脚本来备份我的数据。我对此了解不多,所以我可能会采取错误的方法,但我想做的是对我想要备份的每个目录多次使用 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安装。

相关内容