在 14.04 中,是否可以通过脚本自动卸载自动安装的摄像头

在 14.04 中,是否可以通过脚本自动卸载自动安装的摄像头

我使用的 Ubuntu 版本 (14.04.1) 会自动安装我的数码相机并生成一个框,邀请我说出要用它做什么。由于我对提供的所有选项都不满意,我编写了一个脚本,它完全按照我的要求执行,使用 gphoto2 访问相机并从中获取文件。一个问题是,即使我已为框指定“不执行任何操作”,相机仍处于安装状态,因此,就 gphoto2 而言,由于未释放而不可用。为了释放它,我必须打开或找到文件夹显示,并专门弹出相机。我宁愿不费心执行此步骤,而只是让我的脚本运行。我想知道是否有办法做到这一点。

答案1

对于 Ubuntu 17.10、18.04 及更高版本,您需要使用实用程序gio(替代gvfs-mount)。

如果相机已安装并且已安装 gphoto2,请尝试

gio mount -s gphoto2

但如果你想专门针对相机:

gio mount -l

将向您显示可安装的驱动器。

如果你插入了相机,它可能看起来像这样:

$ gio mount -l
Drive(0): DA4032
  Type: GProxyDrive (GProxyVolumeMonitorUDisks2)
Volume(0): Canon Digital Camera
  Type: GProxyVolume (GProxyVolumeMonitorGPhoto2)
  Mount(0): Canon Digital Camera -> gphoto2://%5Busb%3A002,002%5D/
    Type: GProxyShadowMount (GProxyVolumeMonitorGPhoto2)
Mount(1): Canon Digital Camera -> gphoto2://%5Busb%3A002,002%5D/
  Type: GDaemonMount

复制之后的位置->将允许您通过gio mount -u(卸载,如果您查看帮助:gio help mount

gio mount -u gphoto2://%5Busb%3A002,002%5D/

将通过 shell 卸载相机。现在,要自动执行此操作,您需要创建一个 systemd 脚本。

答案2

如果您不想摆弄udev(这是系统的事情),您可以使用界面udisk来卸载相机。

相机通常会安装在一个固定的地方,比如/media/user/1234-5678/或类似的(YMMV,取决于相机如何格式化卡);并且作为一个设备,比如说/dev/sdc1/

现在,你可以使用以下方法从脚本中卸载它

 udisksctl unmount -b /dev/sdc1

问题是设备可以改变;我的解决方案是使用这个小魔法

 udisksctl unmount -b $(mount | grep 1234-5678  | cut -d" "  -f1)

只要卡 ID 不变,此方法便可行。

相关内容