ファイルをダウンロードするために、Ubuntu 16.10 LTSを実行しているコンピューターにアクションカメラ(GoPro Hero 5)を接続しました。驚いたことに、/media/
にカメラのフォルダーが表示されませんでした。ルートフォルダーからfind | grep DCIM
を実行すると、探しているビデオファイルが含まれる次のパスを持つフォルダーが見つかりました。
/run/user/1000/gvfs/gphoto2:Host=%5Busb%3A003%2C094%5D/DCIM/
それで、/run/user/1000/gvfs/
とは何であり、その目的は/media/
とどう違うのですか?
Ubuntuは多くのものに加えて、Canonical(Ubuntuの所有者)による自作のプログラミングに基づいています。ほとんどの人は、Linuxカーネルに基づいており、「GNOME」デスクトップ環境を提供することを知っています。しかし、Debianにも基づいており、おそらくGnome Internalsと同じくらい重要です。 Ubuntuでは、「すべての道がGnomeに通じる」と言うことを敢えて言っています。
あなたの質問/run/user/1000/gvfs/
でgvfs
コンポーネントは「Gnome Virtual File System」の略です。カメラとAndroid電話は、通常の「マウント」が発生する「カーネルスペース」の外側のこの「ユーザースペース」にマウントされます。
GIO(Gnome Input Output I surmise)の詳細については、 here および here を参照してください。 Ubuntuには、GIOを使用して gvfs-mountコマンド を使用してデバイスをマウントするページがあります。
質問のその他のコンポーネント/run/user/1000/gvfs/
は/run/user
コンポーネントです。これはsystemd
によって作成され、/tmp
ディレクトリを使用して回避します。これは、ネットワークの「ルール」を回避するため、このようなデバイスの一般的な方法です。 here を参照してください。
/media
とどう違うのですか?/media
ディレクトリは、リムーバブルストレージが置かれている場所です。リムーバブルストレージは、ext4
、fat
、またはntfs
などの使い慣れたファイル形式です。デバイス名とマウント名は静的です。
Android電話は、リムーバブルストレージだけでなく、ストレージを備えたリムーバブル外部オペレーティングシステムです。ストレージには通常、MTPを使用してアクセスします。ただし、電話と通信するプログラムのホストがあります。それが/run/user/1000/gvfs
に入る理由です。 Sambaも同じディレクトリチェーンに入りますが、まだ調査していません。
/run/user/1000
ディレクトリ構造では、マウント名は動的であり、接続ごとに変化します。たとえば、私の電話は現在:
$ ll /run/user/1000/gvfs/mtp:Host=%5Busb%3A001%2C013%5D
total 0
dr-x------ 1 rick rick 0 Dec 31 1969 ./
dr-x------ 3 rick rick 0 May 9 18:20 ../
drwx------ 1 rick rick 0 Dec 31 1969 Internal storage/
drwx------ 1 rick rick 0 Dec 31 1969 SD card/
USB列挙は変更することで悪名高いため、次回はディレクトリ名が変わる可能性があります。 /media
一方、「もの」は静的です。
カーネル4.14.34の下にUbuntu 16.04で表示される日付に注意してください。 1969年以来、このAndroidスマートフォンを持っていません。これをバグと呼ぶことができると思います。