それで、ノートパソコンのタッチパッド入力を調整している間、このディレクトリを見つけて奇妙なことを見つけました。
おそらく、説明するよりもコマンド出力をチェックする方が良いかもしれません。
[root@T480-arch serio1]# pwd -P
/sys/devices/platform/i8042/serio1
[root@T480-arch serio1]# file ./*
./bind_mode: ASCII text
./description: ASCII text
./driver: symbolic link to ../../../../bus/serio/drivers/psmouse
./drvctl: writable, regular file, no read permission
./firmware_id: ASCII text
./id: directory
./modalias: ASCII text
./power: directory
./protocol: ASCII text
./rate: ERROR: cannot read `./rate' (No such file or directory)
./resetafter: ERROR: cannot read `./resetafter' (No such file or directory)
./resolution: ERROR: cannot read `./resolution' (No such file or directory)
./resync_time: ERROR: cannot read `./resync_time' (No such file or directory)
./subsystem: symbolic link to ../../../../bus/serio
./uevent: ASCII text
[root@T480-arch serio1]# ls -alFtr | grep -iE "rate|resetafter|resolution|resync_time"
-rw-r--r-- 1 root root 4096 Jul 30 02:28 resync_time
-rw-r--r-- 1 root root 4096 Jul 30 02:28 resolution
-rw-r--r-- 1 root root 4096 Jul 30 02:28 resetafter
-rw-r--r-- 1 root root 4096 Jul 30 02:28 rate
示されているように、bash
両方ともls
4つのr-somethingファイルがあり、root
権限があることを知っていますが、file
コマンドはそれを認識しません。
また、次のように編集しようとすると、次のようになりますvim
。
"rate" [READ ERRORS] 0L, 0C
私の質問は、これが起こる可能性がある理由です。具体的にどのような「ファイル」を使用していますか?
にあるので、それ/sys/
自体は実際のファイルではありませんが、一般的に以下に見られるようないくつかの抽象化です/dev/
。
すべてがファイルです
*nixシステムの哲学。ただし、この場合はfile
これがデバイスファイルであることを知らせる必要がありますが、ここではそうではありません。
答え1
/sys
これは仮想ファイルシステムであり、その中にあるファイルは実際のファイルではなくカーネルへのインターフェースです。見つかった4つのファイルはpsmouse
ドライバによって処理され、次のような異常な動作を示します。ENOENT
読みながら戻る確認しているデバイスに「SMBus Companion Device」がある場合。 (これはラップトップトラックパッドの一般的な機能です。トラックパッドは以前のバージョンとの互換性のためにPS / 2デバイスとして表示され、すべての機能へのアクセスを提供するために他のバス上のデバイスとしても表示されます。)
通常、ほとんどのファイルアクセスツールはそのままファイルを処理することを期待できません/sys
。特に、ファイルの多くは単一の操作で読み取る必要があり、見かけの長さは実際の根拠がないことがよくあります。