我的 Ubuntu 版本(14.04.1)会自动安装我的数码相机并生成一个框,邀请我说出如何处理它。由于我对所提供的所有选项都不满意,因此我编写了一个脚本,它完全符合我的要求,使用 gphoto2 访问相机并从中获取文件。一个问题是,即使我对盒子指定了“不执行任何操作”,相机仍保持安装状态,因此,就 gphoto2 而言,由于未发布而无法使用。为了释放它,我必须打开或找到一个文件夹显示,并专门弹出相机。我宁愿不理会这一步,而只是让我的脚本运行。我想知道是否有办法做到这一点。
对于 Ubuntu 17.10、18.04 及更高版本,您需要使用该实用程序gio
(已替换为gvfs-mount
)。
如果相机已安装并且您安装了 gphoto2,请尝试
gio mount -s gphoto2
Run Code Online (Sandbox Code Playgroud)
但如果你想专门瞄准相机:
gio mount -l
Run Code Online (Sandbox Code Playgroud)
将向您显示可安装的驱动器。
如果你插入了相机,它可能看起来像这样:
$ 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
Run Code Online (Sandbox Code Playgroud)
在之后复制位置->
将允许您通过卸载它gio mount -u
(卸载,如果您查看帮助:gio help mount
gio mount -u gphoto2://%5Busb%3A002,002%5D/
Run Code Online (Sandbox Code Playgroud)
将通过 shell 卸载相机。现在,要自动执行此操作,您需要创建一个 systemd 脚本。
如果您不想摆弄udev
(这是系统的事情),您可以使用该udisk
界面卸载相机。
相机通常会安装在固定位置,类似/media/user/1234-5678/
或类似(YMMV,取决于相机如何格式化卡);作为一种设备,比如说/dev/sdc1/
。
现在,您可以使用以下命令从脚本中卸载它
udisksctl unmount -b /dev/sdc1
Run Code Online (Sandbox Code Playgroud)
问题是设备可能会改变;我的解决方案是有这个小魔法
udisksctl unmount -b $(mount | grep 1234-5678 | cut -d" " -f1)
Run Code Online (Sandbox Code Playgroud)
只要卡 ID 不改变,这就会起作用。
归档时间: |
|
查看次数: |
3253 次 |
最近记录: |