Linux の crw、brw、lrw などのファイル属性は何ですか?

Linux の crw、brw、lrw などのファイル属性は何ですか?

ファイルとは何ですか?

すべてのファイルは実際には文字列のストリームですが、適切な解析方法を使用すると、有効な情報を取得できます。ファイル操作を容易にするために、人々は異なるファイル解析方法に応じてファイルに異なるタイプを与え、次のように人々にわかるようにマークを付けてきました。

今日、/dev/fuse ファイルのプロパティを確認していたところ、crw_ 権限ビットを見つけて、しばらく混乱しました。

[root@localhost ~]# ll /dev/fuse
crw-rw-rw-。1 ルート ルート 10、229 9月 20 11:12 /dev/fuse

ここで注意すべき点は、関連する回答はインターネットから得られるということです。

Linux では、c は文字デバイス ファイル、b はブロック デバイス ファイル、l はシンボリック リンク ファイル、r は読み取り権限、w は書き込み権限を表します。

Linux ファイル属性の解釈:

ファイルタイプ:

-: 通常のファイル(f)
d: ディレクトリファイル
b: ブロックデバイスファイル(ブロック)
c: キャラクタデバイスファイル(キャラクタ)
l: シンボリックリンクファイル
p: コマンドパイプラインファイル(パイプ)
s: ソケットファイル (ソケット)
ファイル権限: 9 ビット、各グループは 3 ビット、各グループ: rwx (読み取り、書き込み、実行)、グループに特定の権限がない場合は、代わりに - を使用します。
最初のグループは、ファイル所有者の権限です。ファイル所有者は読み取りと書き込みはできますが、実行はできません。
2番目のグループ: 同じグループに対する権限 3番目のグループ: このグループに属さない他のグループに対する権限

Linuxのファイルタイプを見てみましょう

(1)通常ファイル('-'、通常ファイル)

バイナリファイルとテキストファイルに分かれています

バイナリファイルは、.bin、.elfファイルなどのマシンが見るためのものです。

テキスト ファイル: 人間が表示する場合、通常は ASCII エンコードで、ASCII エンコードを使用して解析する必要があります (例: .txt、.c ファイル)。

(2)フォルダファイル('d'、ディレクトリファイル)

ライブラリ関数を使用して開く必要があるという点で特別なファイルです。

(3)リンクファイル('l'、リンクファイル)

ここにソフトリンクファイルがあります。

注: ソフト リンク ファイルとハード リンク ファイルの違い。

ソフト リンク ファイル自体は独立したファイルであり、独自の inode を持ちます。

ハードリンク ファイルは独立したファイルではありません。リンクされたファイルと同じ inode を共有します。

(4) パイプラインファイル ('p'、パイプラインファイル)

プロセス通信に使用されます。

(5)ソケットファイル('s'、ソケットファイル)

ネットワーク用。

(6)キャラクタデバイスファイル('c'、キャラクタファイル)

ハードディスク上には存在せず、fs によって作成されるため、仮想ファイルとなります。

直接読み書きすることはできません。API を使用する必要があります。

(7) ブロックデバイスファイル('b'、ブロックファイル)

これは fd 用に作成された仮想ファイルでもあり、API を使用して読み取りおよび書き込みを行う必要があります。

3. ファイルのプロパティを取得するにはどうすればよいですか?

(1)シェルでstatコマンドを使用する

(2)プログラム内でのstat APIの使用

4. ファイルの権限

(1)ファイルの権限を取得するには?

プログラムで stat API を使用すると、st_mode 要素を取得できます。st_mode はビットベースのコンテンツ レコードなので、対応するビットを & するだけで済みます。Linux では対応するマクロが提供されており、これを使用できます。

(2)プログラムがファイルにアクセスする権限を持っているかどうかをどのように判断するか?

まず、プログラムのファイル権限は、プログラムを実行するユーザーによって決定されます。ユーザーが権限を持っている場合、プログラムには権限があります。ユーザーが権限を持っていない場合、プログラムには権限がありません。次に、プログラムはアクセス API を使用する権限があるかどうかを判断します。最後に、優れたプログラムは、実行の開始時に操作対象のファイルの権限を最初に判断する必要があります。ユーザーが権限を持っていない場合は、ユーザーに通知する必要があります。

(3)権限を変更するには?

シェルにはchmodコマンドがあり、chmod APIもあるので、このAPIを使うことができます。

(4)新しく作成されたファイルの権限はどのように決定されますか?

Linux には umask と呼ばれる変数に似たものがあり、新しいファイルの権限は umask によって決定されます。 umask はシェル内で変更できます。

要約する

上記は、Linux の crw、brw、lrw などのファイル属性についてご紹介したものです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • Linux または Android でファイル システムを追加する属性インターフェイスを解析する方法
  • PythonはLinuxのファイル(フォルダ)の権限を変更します
  • Linux シェル - 識別によってファイル システム属性をテストする方法の例
  • Linux でファイル属性を表示する詳細な例 (ls、lsattr、file、stat)
  • Linux rwxrwxrwt フォルダ属性についての簡単な説明
  • Linuxファイルの基本属性の知識ポイントのまとめ

<<:  vue3 を使用したジグソーパズルゲームのリファクタリングの例

>>:  mysql5.7.17 zip の解凍とインストールの詳細な手順

推薦する

Vue プロジェクトで TS (TypeScript) を使用するための入門チュートリアル

目次1. Typescriptの紹介2. 設定ファイル webpack 設定3. プロジェクトに.t...

表の最初の行と最初の列を固定し、適応型ウィンドウを実現するための CSS の例コード

今日のキャンパス採用筆記試験では、固定された最初の行と最初の列を実装し、幅をウィンドウの変更に適応さ...

docker を使用して minio と java sdk を構築するプロセスの詳細な説明

目次1minioはシンプル2 Dockerビルド minio 2.1 単一ノード2.2 マルチノード...

Tomcat のインストール後に起こりうる問題の紹介

1. Tomcatサービスが開いていませんブラウザのアドレスバーにlocalhost:8080と入力...

Mysql系SQLクエリ文の書き順と実行順を詳しく解説

目次1. 完全なSQLクエリステートメントの記述順序2. 完全なSQL文の実行順序3. select...

ウェブデザイナーが持つべき資質と能力

Web デザインは、インターネットの出現後に誕生した新興の周辺産業です。 Web ページは店頭のよう...

Linuxでkv設定ファイルを変更するにはsedコマンドを使用します

sed は Unix の文字ストリーム エディタ、つまりストリーム エディタです。行指向であり、行単...

Linux で履歴レコードを表示し、タイムスタンプを追加するためのヒント

Linux で履歴レコードを表示し、タイムスタンプを追加するためのヒントbashに詳しい人なら、hi...

MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス

1.MySQLの複数インスタンスMySQL マルチインスタンスとは、1 台以上のマシン上で複数の M...

dockerカスタムイメージでphp7をビルドする方法

まず、簡単な Docker インストールを実行します。イメージをカスタマイズするには、ベースイメージ...

HTML で特定のテキストを非表示にするにはどうすればよいでしょうか?

テキスト非表示コード、HTML 内の特定のテキストを非表示にするコードをコピーコードは次のとおりです...

CSSを使用してアダプティブスクエアを実装する方法の例

伝統的な方法は、正方形を固定形式で書くことです。長さ=幅を直接書き、次のように固定値を書きます。 。...

MySQL で 1 つのテーブルのフィールドを使用して別のテーブルのフィールドを更新する方法

1. 1列を変更する 学生の更新、都市c s.city_name = c.name を設定します こ...

コンテンツの位置をランダムにドラッグするHTMLを実装する2つの方法

テスト: Chrome v80.0.3987.122 は正常です方法は2つあります。通常のラベルの位...

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

仕事を探しています!!!事前準備:まず、このアニメーションは、以前のローディングアニメーションとクー...