lsコマンドでc型が何であるかを知りたいです。
私は/dev/stdinのシンボリックリンクをたどり、/dev/pts/0で終わりました。
$ ls -l /dev/pts/0
crw--w---- 1 blue tty 136, 0 Apr 8 21:50 /dev/pts/0
パターン出力の最初の記号があることがわかりますc
。今、これが何を意味するのかを理解しようとしています。
いくつかの情報を見つけることができますが、cはリストされておらず、それらのいくつかは少し間違っているようです。少なくとも私のボックスには、シンボリックリンクに大文字Lの代わりに小文字lがあります。
d if the entry is a directory;
a if the entry is an append-only file;
D if the entry is a Unix device;
L if the entry is a symbolic link;
P if the entry is a named pipe;
S if the entry is a socket;
- if the entry is a plain file.
源泉:http://manpages.ubuntu.com/manpages/jammy/en/man1/ls.1plan9.html
man pts
私はこれが疑似ターミナルマスターとスレーブのペアであることを読むことができます。
ptmx, pts - 疑似ターミナルマスターおよびスレーブデバイス
プロセスが/dev/ptmxを開くと、疑似ターミナルマスターデバイスのファイル記述子を取得し、/dev/ptsディレクトリに擬似ターミナルスレーブデバイスを作成します。 /dev/ptmx を開くことによって得られる各ファイル記述子は、独自の関連スレーブを持つ独立した疑似端末ホストであり、そのパスはファイル記述子を ptsname(3) に渡すことで見つけることができます。
では、c
どういう意味ですか?私の考えでは、これがpseudoterminal slave device
。
編集する:
c
もっと読んで考えた結果、本質的にこれだからだそうです。快適。
答え1
「c」は、対応する装置が「文字特殊装置」であることを示す。見てみると、/dev
すべてのディスクと同様に、「特殊デバイスのブロック」を意味する「b」も表示されます。バラよりウィキペディア。
デバイスファイルを使用すると、デバイスドライバに直接アクセスできます。歴史的に、UNIXはディスクなどのブロック構造デバイス用の文字デバイスとブロックデバイスを提供してきました。 「c」デバイスを使用すると、システムバッファを介さずにデバイスに直接アクセスできます。名前は少し誤解を招く。 「生」が良かったでしょう。しかし、歴史によれば「c」が指定された。端末の場合は、一度に1つ以上の文字を出力または入力できます。ディスクの場合、バイトレベルのアクセスを許可しない場合でも、呼び出し元はすべてのブロックのソートとアドレス指定が呼び出し元によって行われたことを確認する必要があります。 「b」デバイスは「バッファ」デバイスと呼ばれる方が適切です。 I / Oはシステムのバッファで実行され、システムが決定したポイントからディスクに移動されます。バッファリングにより、デバイスドライバはさまざまなサイズの整列されていないブロックを受け入れることができます。
答え2
最初の文字はファイル形式を識別します。
- Regular file
b Block special file
c Character special file
d Directory
l Symbolic link
n Network file
p FIFO
s Socket
通常のファイルの場合、「-」を次に置き換えることができます。
D Demand recall file
E Encrypted file
O Offline file
S Sparse file