“Linux/Unixには何種類のファイルがあり、それらは何でしょうか?” これは、Linuxを学び始めた人なら誰にでもある質問です。

その答えは? Linuxはあらゆるものをファイルと見なすからです。

Linux/Unixで作業を始めると、さまざまなファイルタイプ(linux/unix)を効果的に管理する必要があります。

通常ファイル

  1. ディレクトリファイル

  2. 特殊ファイル(このカテゴリには5つのサブタイプがあります)

つまり、実質的にはLinux/Unixでは合計7種類(1+1+5)あることになります。 そしてSolarisでは8種類です。 ls -l “コマンドの左端にファイルタイプが表示されます。

それらのファイルタイプを以下に示します。

  1. Regular file(-)) 
  2.  ディレクトリファイル(d) 

特殊ファイル 

  1. ブロックファイル(b)
  2. 文字デバイスファイル(c)
  3. パイプファイルまたは単にパイプと名付ける file(p)

  4. Symbolic link file(l)
  5. Socket file(s)

ところで、もう一つドアファイル(D)というファイルタイプがありますが、これは先に述べたSun Solarisで存在するものです。 ドアはクライアントとサーバ間のプロセス間通信を行うための特殊なファイルです(Unixでは全部で8種類あります)。 7084>

ファイルタイプの定義と情報
特定のファイルタイプの作成方法
特定のファイルタイプの一覧/表示方法

Linuxにおける通常のファイルタイプの説明

これらのファイルは、ls -lコマンドで行頭に「-」が表示されるものである。

1. 
2 バイナリファイル
3 イメージファイル
4 圧縮ファイルなど

Linux/Unixで通常ファイルを作るにはどうしたらよいですか?
Ans: touch/viコマンドとリダイレクト演算子などを使用します。

どのように正規ファイルをリストアップできますか?

ls -l | grep ^- 

正規ファイルのリストの例 :

-rw--r-- 1 krishna krishna 20986522 2010-01-31 13:48 test.wmv
-rw--r-- 1 krishna krishna 173448 2010-01-30 21:20 Transformers-Teaser-Wallpaper-310.WMV

正規ファイルのリストの例: 正規ファイルのリストを作成する方法。jpg
-r-xr-x 1 root root 135168 2009-12-12 19:14 VIDEO_TS.VOB
-rw-r--r-- 1 krishna krishna 2113536 2009-12-01 13:32 Aditya 365 - Janavule.mp3
-rwxwxrwx 1 root root 168 2010-02-14 14:12 xyz.XX.XYZ.XYZ.XX.XX.XX.XX.XX.XX.XX.XX.XX.XX.XX.sh

Linux/Unixでのディレクトリファイルタイプの説明

これらのタイプのファイルは、物理デバイスに保存された通常のファイル/フォルダ/特別なファイルを含んでいます。 また、このタイプのファイルは、リンクが 2 以上で青色で表示されます。

 現在の作業ディレクトリにあるファイルを一覧するにはどうしたらよいでしょうか。 
ls -l | grep ^d

ディレクトリのリストアップの例です。

drwxr-xr-x 2 surendra surendra 4096 2010-01-19 18:37 bin
drwxr-xr-x 5 surendra surendra 4096 2010-02-15 18:46 Desktop
drwxr-xr-x 2 surendra surendra 4096 2010-01-18 14:36 Documents
drwxr-xr-x 2 surendra surendra 4096 2010-02-13 17:45 Downloads

どのように作成するのでしょうか?
Ans : mkdir コマンドを使用します

Block file type in Linux

これらのファイルはハードウェアファイルで、そのほとんどは /dev にあります

どのように作成するのですか?
Ans : fdisk コマンドを使用するか、仮想パーティションを作成します。

現在の作業ディレクトリにあるブロックファイルを一覧するにはどうしたらよいですか。

brw-rw---- 1 root disk 8, 1 2010-02-15 09:35 sda1
brw-rw---- 1 root disk 8, 2 2010-02-15 09:35 sda2
brw-rw---- 1 root disk 8, 5 2010-02-15 09:35 sda5

Character device files in Linux

入力や出力が連続的にできるようになるものです。ターミナルはこのタイプのファイルの典型例です。

現在の作業ディレクトリにあるキャラクター ファイルを一覧表示するにはどうしたらよいでしょうか。

ls -l | grep ^c

キャラクターファイルのリストアップ例 (/dev にある)

crw-rw-rw- 1 root tty 5, 0 2010-02-15 16:52 tty
crw--w---- 1 root root tty 4, 0 2010-02-15 09:35 tty0
crw------- 1 root root 4, 1 2010-02-15 09:35 tty1

Linux/Unixにおけるパイプファイル

パイプの別名は「名前付き」パイプで、FIFOと呼ばれることもあるようです。 FIFO は “First In, First Out” の略で、入ってくるバイトの順番は出てくるバイトの順番と同じであるという性質を指しています。 名前付きパイプの「名前」は、実際にはファイルシステム内のファイル名です。

どのように作成するのですか。
Ans: mkfifo コマンドを使用します。

現在の作業ディレクトリにある文字ファイルを一覧するにはどうすればよいですか?

ls -l | grep ^p

パイプファイルの一覧例

prw-r----- 1 root root 0 2010-02-15 09:35 /dev/.initramfs/usplash_outfifo
prw-r----- 1 root root 0 2010-02-15 09:35 /dev/.initramfs/usplash_fifo
prw------- 1 syslog syslog 0 2010-02-15 15:38 /var/run/rsyslog/kmsg

symbolic link files in Linux

それらは他のファイルへのリンクファイルであり、このようなファイルは、他のファイルへのリンクです。 Directory/Regular Fileのいずれかです。 このファイルとその親ファイルのinode番号は同じです。

どのように作成するのですか。
Ans : ln コマンドを使用します。

現在の作業ディレクトリにあるリンクファイルを一覧表示するにはどうしたらよいですか。

ls -l | grep ^l

リンク先ファイル一覧の例
lrwxrwx 1 root root 24 2010-02-15 09:35 sndstat -> /proc/asound/oss/sndstat
lrwxrwx 1 root 15 2010-02-15 09:35 stderr -> /proc/self/fd/2
lrwxrwx 1 root 15 2010-02-15 09:35 sndstat
lrwxrrx 1 root 15 2010-02-15 09:35 stdin -> /proc/self/fd/0
lwxrwx 1 root root 15 2010-02-15 09:35 stdout -> /proc/self/fd/1

Linuxにおけるソケットファイル

アプリケーション間の通信に情報を渡すためにソケットファイルを使用します

どう作成すれば良いですか?
回答 : ソケットファイルは、

C言語の例

int sockfd = socket(AF_INET, SOCK_STREAM, 0);

このソケットファイルはsockfdで参照することが可能です。 これはファイルディスクリプタと同じで、read(), write() システムコールを使ってソケットから読み書きできます。

現在の作業ディレクトリにあるソケットファイルを一覧するにはどうしたらよいでしょうか?

ls -l | grep ^s

ソケットファイルの一覧の例。

srw-rw-rw- 1 root root 0 2010-02-15 09:35 /dev/log

srwxrwx 1 root root 0 2010-02-15 10:07 /var/run/cups/cups.sock
srwxrwx 1 root root 0 2010-02-15 09:35 /var/run/samba/winbindd_privileged/pipe
srwxrwx 1 mysql 0 2010-02-15 09:35 /var/run/mysqld/mysqld.sock

皆さんにヒントをあげました。

Ans : find コマンドに -type オプションを付けて使用します。 例えば、ソケットファイルを見つけたい場合、次のコマンドを使います。 find / -type s もし、リンクされたファイルを見つけたい場合、どのようにすればよいのでしょうか? find / -type l

以上….

admin

コメントを残す

メールアドレスが公開されることはありません。

lg