“Linux/Unixには何種類のファイルがあり、それらは何でしょうか?” これは、Linuxを学び始めた人なら誰にでもある質問です。
その答えは? Linuxはあらゆるものをファイルと見なすからです。
Linux/Unixで作業を始めると、さまざまなファイルタイプ(linux/unix)を効果的に管理する必要があります。
通常ファイル
-
ディレクトリファイル
-
特殊ファイル(このカテゴリには5つのサブタイプがあります)
つまり、実質的にはLinux/Unixでは合計7種類(1+1+5)あることになります。 そしてSolarisでは8種類です。 ls -l “コマンドの左端にファイルタイプが表示されます。
それらのファイルタイプを以下に示します。
-
Regular file(-))
-
ディレクトリファイル(d)
特殊ファイル
- ブロックファイル(b)
- 文字デバイスファイル(c)
- Symbolic link file(l)
- Socket file(s)
パイプファイルまたは単にパイプと名付ける file(p)
ところで、もう一つドアファイル(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
以上….
。