使用 Linux 實用程序 gPhoto2 備份手機存儲
移動設備的最大缺點之一就是其將數據從設備傳輸到計算機很困難。移動設備在這一缺點上有著悠久的歷史。早期的移動設備,如 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 模式,並且授予計算機與它交互的許可權。這通常需要在你的移動設備上操作,往往是在屏幕上按下一個按鈕,以允許其文件系統被剛剛連接的計算機訪問。
![Screenshot of allow access message](/data/attachment/album/202007/14/170754bykbnl4mkk6zemw1.jpg "Screenshot of allow access message")
如果你不授權電腦訪問移動設備,那麼 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,再也不用費勁把文件從你的設備傳輸到電腦上了!
這些開源圖片庫能夠幫助你組織文件,並讓的圖片看起來很棒。
via: https://opensource.com/article/20/7/gphoto2-linux
作者:Seth Kenlon 選題:lujun9972 譯者:summer2233 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive