尽情地拍照吧,gphoto2 能够方便、快速地将照片从你的设备传输到 Linux 计算机上。

移动设备的最大缺点之一就是其将数据从设备传输到计算机很困难。移动设备在这一缺点上有着悠久的历史。早期的移动设备,如 Pilot 和掌上电脑 PDA 设备,需要使用特殊的同步软件来传输数据(你必须小心翼翼地做这件事,因为你的设备可能会因为电池耗尽而导致数据永久丢失);旧版 iPod 只提供特定平台的界面。现代移动设备默认将你的数据发送到在线帐户,以便你可以在计算机上再次下载。

好消息——如果你正在运行 Linux,你可以使用 gphoto2 命令与移动设备进行连接。gphoto2 最初是作为一种与数码相机通信的方式而开发的,那时的数码相机只有传统的相机功能,现在的 gphoto2 可以和许多不同种类的移动设备通讯。别让这个名字骗了你,它可以处理所有类型的文件,而不仅仅是照片。更棒的是,它可以编写脚本、很灵活、并且比大多数 GUI 界面功能强大得多。

如果你曾经为在计算机和移动设备之间同步数据而苦恼,请了解一下 gphoto2。

安装 gPhoto2

很可能你的 Linux 系统已经安装了 libgphoto2,因为它是与移动设备连接的一个关键库,但你可能还需要安装命令 gphoto2,该命令可能在你的存储库中。

在 Fedora 或 RHEL 上:

$ sudo dnf install gphoto2

在 Debian 或 Ubuntu 上:

$ sudo apt install gphoto2

验证兼容性

若要确认你的移动设备是否受支持,请使用 --list-cameras,通过管道传输到 less:

$ gPhoto2 --list-cameras | less

或者你可以通过管道把它传送到 grep 来搜索一个词。例如,如果你有三星 Galaxy,则使用 grep,并通过选项 -i 关闭区分大小写:

$ gphoto2 --list-cameras | grep -i galaxy

"Samsung Galaxy models (MTP)"

"Samsung Galaxy models (MTP+ADB)"

"Samsung Galaxy models Kies mode"

这证实了三星 Galaxy 设备支持通过 MTP 连接和通过 ADB 连接 MTP。

如果你没有在列表中找到自己的移动设备,你仍然可以尝试使用 gphoto2,可能你的设备在列表中使用了不同的称呼。

查找移动设备

要使用 gPhoto2,首先必须将移动设备插入计算机,设置为 MTP 模式,并且授予计算机与它交互的权限。这通常需要在你的移动设备上操作,往往是在屏幕上按下一个按钮,以允许其文件系统被刚刚连接的计算机访问。

如果你不授权电脑访问移动设备,那么 gPhoto2 可以检测到你的移动设备,但它不能与之交互。

要确保计算机检测到你连接的移动设备,请使用 --auto-detect 选项:

$ gphoto2 --auto-detect

Model                       Port

---------------------------------------

Samsung Galaxy models (MTP) usb:002,010

如果你的移动设备没有被检测到,请先检查数据线,然后检查你的设备是否配置为通过 MTP、ADB 或其它 gPhoto2 支持的协议连接,如 --list-cameras 所示。

查询你的设备支持的特性

对于现代设备,通常有过多的潜在功能,但并非所有移动设备都支持这些功能。你可以用 --abilities 选项来确定自己的移动设备支持哪些功能。我觉得结果看起来直观。

$ gphoto2 --abilities

Abilities for camera            : Samsung Galaxy models (MTP)

Serial port support             : no

USB support                     : yes

Capture choices                 : Capture not supported by driver

Configuration support           : no

Delete selected files on camera : yes

Delete all files on camera      : no

File preview (thumbnail) support: no

File upload support             : yes

如果只连接一个设备,那么不需要指定查询的设备。但是,如果连接了多个 gPhoto2 可以与之交互的设备,则可以通过端口、相机型号或 usbid 指定设备。

与你的移动设备交互

如果你的设备支持拍摄功能,则可以从计算机调用你的摄像头来获取媒体。例如,要拍摄照片:

$ gphoto2 --capture-image

要拍摄照片并立即将其传输到连接的计算机:

$ gphoto2 --capture-image-and-download

你也可以录制视频和声音。如果连接了多个拍摄设备,可以按端口、相机型号或 usbid 指定要使用的设备:

$ gphoto2 --camera "Samsung Galaxy models (MTP)" \

--capture-image-and-download

文件和文件夹

要想更加智能地管理移动设备上的文件,你需要了解 gPhoto2 连接的文件系统的结构。

你可以使用 --get-folders 选项查看可用文件夹:

$ gphoto2 --list-folders

There are 2 folders in folder '/'.

- store_00010001

- store_00020002

There are 0 folders in folder '/store_00010001'.

There are 0 folders in folder '/store_00020002'.

每个文件夹代表设备上的一个存储单元。在本例中,store_00010001 是内部存储器,store_00020002 是 SD 卡,这可能与你的设备的结构不同。

获取文件

现在你知道了设备的文件夹布局,就可以从设备获取照片了。你可以使用许多不同的选项,具体取决于你想从设备中获取什么。

如果你知道绝对路径,则可以获取指定的文件:

$ gphoto2 --get-file IMG_0001.jpg --folder /store_00010001/myphotos

你可以同时获得所有的文件:

$ gphoto2 --get-all-files --folder /store_00010001/myfiles

你可以只获取音频文件:

gphoto2 --get-all-audio-data --folder /store_00010001/mysounds

gPhoto2 还有其他的选择,其中大多数取决于你连接的设备和使用协议是否支持。

上传文件

现在你知道了潜在的目标文件夹,就可以将文件从计算机上传到你的设备。例如,假设有一个名为 example.epub 的文件在当前目录中,你可以使用 --upload-file 选项和 --folder 选项将文件发送到设备并指定要上传到的目录:

$ gphoto2 --upload file example.epub \

--folder store_00010001

如果你希望将多个文件上传到同一个位置,你可以在设备上创建一个目录:

$ gphoto2 --mkdir books \

--folder store_00010001

$ gphoto2 --upload-file *.epub \

--folder store_00010001/books

列出文件

若要查看设备上的文件,请使用 --list-files 选项:

$ gphoto2 --list-files --folder /store_00010001

There is 1 file in folder '/store_00010001'

#1     example.epub 17713 KB application/x-unknown

$ gphoto2 --list-files --folder /store_00010001/books

There is 1 file in folder '/store_00010001'

#1    example0.epub 17713 KB application/x-unknown

#2    example1.epub 12264 KB application/x-unknown

[...]

探索你的使用方式

gPhoto2 的大部分功能取决于你的设备,因此不同用户的体验可能不尽相同。在 gphoto2 --help 中列出了许多操作供你探索。使用gPhoto2,再也不用费劲把文件从你的设备传输到电脑上了!

这些开源图片库能够帮助你组织文件,并让的图片看起来很棒。

本文由 LCTT 原创编译,Linux中国 荣誉推出

linux存储实用程序,技术|使用 Linux 实用程序 gPhoto2 备份手机存储相关推荐

  1. 嵌入式linux实时化技术,嵌入式Linux实时化技术

    引言 Linux支持PowerPC.MIPS.ARM.DSP等多种嵌入式处理器,逐渐被用于多种关键性场合.其中实时多媒体处理.工业控制.汽车电子等特定应用对Linux提出了强实时性需求.Linux提供 ...

  2. Linux 虚拟化网络技术 — KVM + Linux Bridge 的网络虚拟化解决方案

    目录 文章目录 目录 KVM 虚拟机应用 Linux Bridge + VLAN 实现网络隔离 TSG: Failed to restart network KVM 虚拟机应用 Linux Bridg ...

  3. linux数据同步技术比较,linux下实现web数据同步的四种方式(性能比较)教程.docx

    linux下实现web数据同步的四种方式(性能比较)教程 实现web数据同步的四种方式=======================================1.nfs实现web数据共享2.rs ...

  4. stol函数在linux下使用,技术|在 Linux 命令行下使用“原力”

    和绝地武士的原力一样,-f 参数是很强大的,并伴随着潜在的毁灭性,在你能用好的时候又很便利. 近些年来,科幻发烧友开始在每年的 5 月 4 日庆祝星战节,其口号是绝地武士的祝福语"愿原力Fo ...

  5. linux禁用用户账号,技术|在 Linux 系统中禁用与解禁用户的账号

    总有这样的时候:有时你需要禁用某位 Linux 用户的账号,有时你还需要反过来解禁用户的账号. 本文将介绍一些管理用户访问的命令,并介绍它们背后的原理. 假如你正管理着一台 Linux 系统,那么很有 ...

  6. linux时区文件格式,技术|在 Linux 中查看你的时区

    在这篇短文中,我们将向你简单介绍几种 Linux 下查看系统时区的简单方法.在 Linux 机器中,尤其是生产服务器上的时间管理技能,是在系统管理中一个极其重要的方面. Linux 包含多种可用的时间 ...

  7. linux pushd命令,技术|在 Linux 中使用 pushd 和 popd 命令来进行高效的目录导航

    有时候,通过命令来在 Linux 文件系统导航是一件非常痛苦的事情,特别是对于一些新手.通常情况下,我们主要使用 cd(改变目录)命令在 Linux 文件系统之间移动. 在之前的文章中,我们回顾了一个 ...

  8. linux中pppoe技术分析,Linux中PPPOE技术分析

    一.PPP协议介绍 1.PPP协议的组成 PPP协议包括两部分组成:一部分是数据链路控制协议(LCP):另一部分是网络控制协议(NCP). 2.PPP链接的过程分析 PPP链接的建立过程分为三个阶段: ...

  9. ICT技术发展趋势,AI、大数据和云计算的概述及存储应用技术【2】

    文章目录 ICT技术发展趋势 云计算存储应用技术 云计算概述 AI.大数据存储应用技术 大数据概述 ICT技术发展趋势 各行各业都在面临IT新技术的挑战,IT新趋势正在改变世界,基于数字世界重构规则. ...

最新文章

  1. stm32l0的停止模式怎么唤醒_探索者 STM32F407 开发板资料连载第二十二章 待机唤醒实验
  2. TDD, what, why, how
  3. 奥巴马女儿要上哈佛了!从小给女儿定下了五条规矩! 2017-08-07 07:35 哈佛/美国 转载授权请回复“转载“ 文:益美传媒|编辑:Angela 奥巴马曾说自己最骄傲的一件事,就是即使在长
  4. 论文浅尝 - ECIR2021 | 两种实体对齐方法的严格评估
  5. php在linux中执行外部命令
  6. 【细节实现题】LeetCode 56. Merge Intervals
  7. 【MySQL】2、MySQL 创建数据库和表
  8. filezilla server 下载、安装、配置教程(包含新版使用配置)
  9. 神舟战神换cpu教程_神舟战神做工如何?神舟战神K650D-A29拆机图解教程
  10. oracle学习札记46
  11. 计算机电源指示灯,为什么笔记本电脑电源指示灯一直闪?
  12. 使用Tampermonkey油猴子给浏览器开个挂
  13. 2017个人年终总结
  14. 一维条码之code93码的生成和打印
  15. 学习记录之星瞳检测交通标志1
  16. java解析micaps_9210的Micaps第13类卫星云图数据
  17. SaaSpace:4种最佳硬盘恢复软件工具
  18. 教你如何理解贝叶斯公式
  19. 典型计算机控制的电子测试系统组成,LIV测试系统的结构组成和应用分析
  20. 解决H5播放视频黑屏只有声音没有图像的问题,Java调用ffmpeg转码成h264的mp4格式

热门文章

  1. R语言ggplot2可视化:可视化所有日期不同时段任务的持续时间、将持续时间绘制成一条线(起始时间到结束时间),y轴表示活动发生的日期,x轴表示以小时为单位的时间、适应时间段跨越多天的情况
  2. R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置y轴的标签文本使用粗体字体)
  3. R语言ggplot2可视化:可视化饼图分面图并在图中添加数据标签
  4. R语言构建xgboost模型:使用xgboost的第一颗树(前N颗树)进行预测推理或者使用全部树进行预测推理、比较误分类率指标
  5. python使用fpdf生成pdf文件章节(chapter),包含:页眉、页脚、章节主题、数据排版等;
  6. matplotlib绘制带比例(percentile)的堆叠(stacked)条形图(bar plot)
  7. matlab中的single是什么类型_MATLAB 中cell数据类型的使用方法
  8. 计算机一级在线模拟试题,计算机一级模拟试题带答案
  9. linux关机 hibernate,Linux关机命令
  10. Chart.js-雷达图分析(参数分析+例图)