使用Linux實(shí)用程序gPhoto2備份手機(jī)存儲(chǔ)
盡情地拍照吧,gphoto2 能夠方便、快速地將照片從你的設(shè)備傳輸?shù)?Linux 計(jì)算機(jī)上。
移動(dòng)設(shè)備的最大缺點(diǎn)之一就是其將數(shù)據(jù)從設(shè)備傳輸?shù)接?jì)算機(jī)很困難。移動(dòng)設(shè)備在這一缺點(diǎn)上有著悠久的歷史。早期的移動(dòng)設(shè)備,如 Pilot 和掌上電腦 PDA 設(shè)備,需要使用特殊的同步軟件來(lái)傳輸數(shù)據(jù)(你必須小心翼翼地做這件事,因?yàn)槟愕脑O(shè)備可能會(huì)因?yàn)殡姵睾谋M而導(dǎo)致數(shù)據(jù)永久丟失);舊版 iPod 只提供特定平臺(tái)的界面?,F(xiàn)代移動(dòng)設(shè)備默認(rèn)將你的數(shù)據(jù)發(fā)送到在線帳戶,以便你可以在計(jì)算機(jī)上再次下載。
好消息——如果你正在運(yùn)行 Linux,你可以使用 gphoto2
命令與移動(dòng)設(shè)備進(jìn)行連接。gphoto2
最初是作為一種與數(shù)碼相機(jī)通信的方式而開發(fā)的,那時(shí)的數(shù)碼相機(jī)只有傳統(tǒng)的相機(jī)功能,現(xiàn)在的 gphoto2
可以和許多不同種類的移動(dòng)設(shè)備通訊。別讓這個(gè)名字騙了你,它可以處理所有類型的文件,而不僅僅是照片。更棒的是,它可以編寫腳本、很靈活、并且比大多數(shù) GUI 界面功能強(qiáng)大得多。
如果你曾經(jīng)為在計(jì)算機(jī)和移動(dòng)設(shè)備之間同步數(shù)據(jù)而苦惱,請(qǐng)了解一下 gphoto2
。
安裝 gPhoto2
很可能你的 Linux 系統(tǒng)已經(jīng)安裝了 libgphoto2,因?yàn)樗桥c移動(dòng)設(shè)備連接的一個(gè)關(guān)鍵庫(kù),但你可能還需要安裝命令 gphoto2
,該命令可能在你的存儲(chǔ)庫(kù)中。
在 Fedora 或 RHEL 上:
$ sudo dnf install gphoto2
在 Debian 或 Ubuntu 上:
$ sudo apt install gphoto2
驗(yàn)證兼容性
若要確認(rèn)你的移動(dòng)設(shè)備是否受支持,請(qǐng)使用 --list-cameras
,通過(guò)管道傳輸?shù)?nbsp;less
:
$ gPhoto2 --list-cameras | less
或者你可以通過(guò)管道把它傳送到 grep
來(lái)搜索一個(gè)詞。例如,如果你有三星 Galaxy,則使用 grep
,并通過(guò)選項(xiàng) -i
關(guān)閉區(qū)分大小寫:
$ gphoto2 --list-cameras | grep -i galaxy
"Samsung Galaxy models (MTP)"
"Samsung Galaxy models (MTP+ADB)"
"Samsung Galaxy models Kies mode"
這證實(shí)了三星 Galaxy 設(shè)備支持通過(guò) MTP 連接和通過(guò) ADB 連接 MTP。
如果你沒(méi)有在列表中找到自己的移動(dòng)設(shè)備,你仍然可以嘗試使用 gphoto2
,可能你的設(shè)備在列表中使用了不同的稱呼。
查找移動(dòng)設(shè)備
要使用 gPhoto2,首先必須將移動(dòng)設(shè)備插入計(jì)算機(jī),設(shè)置為 MTP 模式,并且授予計(jì)算機(jī)與它交互的權(quán)限。這通常需要在你的移動(dòng)設(shè)備上操作,往往是在屏幕上按下一個(gè)按鈕,以允許其文件系統(tǒng)被剛剛連接的計(jì)算機(jī)訪問(wèn)。
Screenshot of allow access message
如果你不授權(quán)電腦訪問(wèn)移動(dòng)設(shè)備,那么 gPhoto2 可以檢測(cè)到你的移動(dòng)設(shè)備,但它不能與之交互。
要確保計(jì)算機(jī)檢測(cè)到你連接的移動(dòng)設(shè)備,請(qǐng)使用 --auto-detect
選項(xiàng):
$ gphoto2 --auto-detect
Model Port
---------------------------------------
Samsung Galaxy models (MTP) usb:002,010
如果你的移動(dòng)設(shè)備沒(méi)有被檢測(cè)到,請(qǐng)先檢查數(shù)據(jù)線,然后檢查你的設(shè)備是否配置為通過(guò) MTP、ADB 或其它 gPhoto2 支持的協(xié)議連接,如 --list-cameras
所示。
查詢你的設(shè)備支持的特性
對(duì)于現(xiàn)代設(shè)備,通常有過(guò)多的潛在功能,但并非所有移動(dòng)設(shè)備都支持這些功能。你可以用 --abilities
選項(xiàng)來(lái)確定自己的移動(dòng)設(shè)備支持哪些功能。我覺(jué)得結(jié)果看起來(lái)直觀。
$ 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
如果只連接一個(gè)設(shè)備,那么不需要指定查詢的設(shè)備。但是,如果連接了多個(gè) gPhoto2 可以與之交互的設(shè)備,則可以通過(guò)端口、相機(jī)型號(hào)或 usbid 指定設(shè)備。
與你的移動(dòng)設(shè)備交互
如果你的設(shè)備支持拍攝功能,則可以從計(jì)算機(jī)調(diào)用你的攝像頭來(lái)獲取媒體。例如,要拍攝照片:
$ gphoto2 --capture-image
要拍攝照片并立即將其傳輸?shù)竭B接的計(jì)算機(jī):
$ gphoto2 --capture-image-and-download
你也可以錄制視頻和聲音。如果連接了多個(gè)拍攝設(shè)備,可以按端口、相機(jī)型號(hào)或 usbid 指定要使用的設(shè)備:
$ gphoto2 --camera "Samsung Galaxy models (MTP)" \
--capture-image-and-download
文件和文件夾
要想更加智能地管理移動(dòng)設(shè)備上的文件,你需要了解 gPhoto2 連接的文件系統(tǒng)的結(jié)構(gòu)。
你可以使用 --get-folders
選項(xiàng)查看可用文件夾:
$ 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'.
每個(gè)文件夾代表設(shè)備上的一個(gè)存儲(chǔ)單元。在本例中,store_00010001
是內(nèi)部存儲(chǔ)器,store_00020002
是 SD 卡,這可能與你的設(shè)備的結(jié)構(gòu)不同。
獲取文件
現(xiàn)在你知道了設(shè)備的文件夾布局,就可以從設(shè)備獲取照片了。你可以使用許多不同的選項(xiàng),具體取決于你想從設(shè)備中獲取什么。
如果你知道絕對(duì)路徑,則可以獲取指定的文件:
$ gphoto2 --get-file IMG_0001.jpg --folder /store_00010001/myphotos
你可以同時(shí)獲得所有的文件:
$ gphoto2 --get-all-files --folder /store_00010001/myfiles
你可以只獲取音頻文件:
gphoto2 --get-all-audio-data --folder /store_00010001/mysounds
gPhoto2 還有其他的選擇,其中大多數(shù)取決于你連接的設(shè)備和使用協(xié)議是否支持。
上傳文件
現(xiàn)在你知道了潛在的目標(biāo)文件夾,就可以將文件從計(jì)算機(jī)上傳到你的設(shè)備。例如,假設(shè)有一個(gè)名為 example.epub
的文件在當(dāng)前目錄中,你可以使用 --upload-file
選項(xiàng)和 --folder
選項(xiàng)將文件發(fā)送到設(shè)備并指定要上傳到的目錄:
$ gphoto2 --upload file example.epub \
--folder store_00010001
如果你希望將多個(gè)文件上傳到同一個(gè)位置,你可以在設(shè)備上創(chuàng)建一個(gè)目錄:
$ gphoto2 --mkdir books \
--folder store_00010001
$ gphoto2 --upload-file *.epub \
--folder store_00010001/books
列出文件
若要查看設(shè)備上的文件,請(qǐng)使用 --list-files
選項(xiàng):
$ 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 的大部分功能取決于你的設(shè)備,因此不同用戶的體驗(yàn)可能不盡相同。在 gphoto2 --help
中列出了許多操作供你探索。使用gPhoto2,再也不用費(fèi)勁把文件從你的設(shè)備傳輸?shù)诫娔X上了!
這些開源圖片庫(kù)能夠幫助你組織文件,并讓的圖片看起來(lái)很棒。