この記事では、Unixでのファイル管理について詳しく説明します。 Unixのすべてのデータはファイルに整理されています。すべてのファイルはディレクトリに編成されています。 これらのディレクトリは、ファイルシステムと呼ばれるツリー構造に編成されています。
一つの方法でUnixを使用する場合、ほとんどの時間をファイルの処理に費やします。 この記事は、ファイルの作成と削除、ファイルのコピーと名前の変更、ファイルへのリンクの作成などの方法を習得するのに役立ちます。
Unixで、ファイルには3つの基本的な型があります-
- 通常のファイル-通常のファイルは、データ、テキスト、またはプログラムの指示を含むシステム上のファイルです。 この記事では、通常のファイルの使い方を説明します。
- ディレクトリ-ディレクトリには、特別なファイルと通常のファイルが格納されます。 WindowsまたはMac OSに精通しているユーザーにとって、Unixディレクトリはフォルダに相当します。
- 特別なファイル-一部の特別なファイルは、ハードドライブ、CD-ROMドライブ、モデム、イーサネットアダプターなどのハードウェアへのアクセスを提供します。 その他の特別なファイルはエイリアスやショートカットに似ており、異なる名前の個々のファイルにアクセスできます。
目次
ファイルの一覧表示
現在のディレクトリに保存されているファイルとディレクトリを一覧表示するには、次のコマンドを使用します-
$ls
これは上記のコマンドの出力実例です-
$ls
bin hosts lib res.03
ch07 hw1 pub test_results
ch07.bak hw2 res.01 users
docs hw3 res.02 work
コマンドls
は-l
オプションをサポートします。これは、リストされたファイルに関する詳細情報を取得するのに役立ちます-
$ls -l
total 1962188
drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml
-rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg
drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ
drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia
-rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar
drwxr-xr-x 8 root root 4096 Nov 25 2007 usr
drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01
-rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php
-rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar
-rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid
-rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf
drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3
$
これは、リストされているすべての列に関する情報です-
- 最初の列-ファイルの種類とファイルのアクセス許可を示します。 以下は、すべてのファイルタイプの説明です。
- 2番目の列-ファイルまたはディレクトリが占めるメモリブロックの数を示します。
- 3番目の列-ファイルの所有者を表します。 これは、このファイルを作成したUnixユーザーです。
- 4番目の列-所有者のグループを表します。 各Unixユーザーには、関連付けられたグループがあります。
- 5番目の列-ファイルサイズ(バイト単位)を示します。
- 6番目の列-ファイルが最後に作成または変更された日時を表します。
- 7番目の列-ファイルまたはディレクトリの名前を示します。
ls -l
にリストされている例では、各ファイル行はd
、–
、またはl
で始まります。 これらの文字は、リストされているファイルのタイプを示します。
番号 | プレフィックスと説明 |
1 | – ASCIIテキストファイル、バイナリ実行可能ファイル、ハードリンクなどの通常のファイルです。 |
2 | b 特別なファイルをブロックします。 物理ハードドライブなどの入力/出力デバイスファイルをブロックします。 |
3 | c 文字特殊ファイルです。 物理ハードドライブなどの生の入力/出力デバイスファイルです。 |
4 | d その他のファイルとディレクトリのリストを含むディレクトリファイルです。 |
5 | l シンボリックリンクファイルです。 通常のファイルへのリンクです。 |
6 | p 名前付きパイプです。 プロセス間通信のメカニズムです。 |
7 | s プロセスの間に使用される通信用のソケットです。 |
メタ文字
メタ文字はUnixでは特別な意味を持っています。例えば、「?」 はメタ文字であり、疑問符(?)を使用して1文字を照合します。
例えば-
$ls ch*.doc
filenameがch
で始まり、.doc
で終わるすべてのファイルを表示します。
ch01-1.doc ch010.doc ch02.doc ch03-2.doc
ch04-1.doc ch040.doc ch05.doc ch06-2.doc
ch01-2.doc ch02-1.doc c
ここで、*は任意の文字に一致するメタ文字として使用されます。 .docで終わるすべてのファイルを表示する場合は、次のコマンドを使用できます-
$ls *.doc
隠しファイル
非表示ファイルは、最初の文字がドットまたはピリオド文字(。)であるファイルです。 Unixプログラム(シェルを含む)は、これらのファイルのほとんどを使用して構成情報を格納します。
以下のは隠しファイルの常用の一般的な実例のファイルです-
- .profile-Bourne shell(sh)初期化スクリプト
- .kshrc-Korn Shell(ksh)初期化スクリプト
- .cshrc-C Shell(csh)初期化スクリプト
- .rhosts-リモートシェル構成ファイル
非表示のファイルを一覧表示するには、ls
に-a
オプションを指定します。
$ ls -a
. .profile docs lib test_results
.. .rhosts hosts pub users
.emacs bin hw1 res.01 work
.exrc ch07 hw2 res.02
.kshrc ch07.bak hw3 res.03
$
- シングルドット(.)-これは現在のディレクトリを示します。
- 二重ドット(..)-これは親ディレクトリを示します。
ファイルを作成する
vi
エディターを使用して、任意のUnixシステムで通常のファイルを作成できます。 次のコマンドを実行する必要があります-
$ vi filename
上記のコマンドは、指定されたfilenameのファイルを開きます。 次に、i
を押して編集モードに入ります。 編集モードに入った後、次のステップに従ってファイルへのコンテンツの書き込みを開始できます-
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
プログラムが完了した後、以下のステップに従います。
- escキーを押して、編集モードを終了します。
- ファイルを完全に終了するには、Shift + ZZの2つのキーを同時に押します。
次には、現在のディレクトリにfilenameを使用してファイルを作成します。
$ vi filename
$
ファイルの編集
viエディターを使用して、既存のファイルを編集できます。 要するに、既存のファイルを開く方法について説明します-
$ vi filename
ファイルを開いた後、iキーを押すと編集モードに入り、ファイルを編集できます。 ファイル内を移動する場合は、最初にEscキーを押して編集モードを終了する必要があります。 その後、次のキーを使用してファイル内を移動できます-
l
キーが右に移動します。h
キーが左に移動します。K
キーはファイル内で上に移動できます。j
キーを使用して、ファイルを下に移動します。
そのため、上記のキーを使用して、編集したい場所にカーソルを置くことができます。 位置が決めた後、iキーで編集モードに入ることができます。 ファイルを編集した後、Escキーを押し、最後にShift + ZZを押してファイルを完全に終了します。
ファイルの内容を表示する
cat
コマンドを使用して、ファイルの内容を表示できます。 以下は簡単な実例です。上記で作成したファイルの内容を表示できます-
$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$
以下に示すように、-b
オプションとcat
コマンドを使用して、行番号を表示できます。
$ cat -b filename
1 This is unix file....I created it for the first time.....
2 I'm going to save this content in this file.
$
ファイル内の単語を数える
wc
コマンドを使用して、ファイルに含まれる行、単語、および文字の総数を取得できます。 上記で作成したファイルに関する情報を表示する簡単な実例を次に示します-
$ wc filename
2 19 103 filename
$
これは、4つの列ですべての詳細情報です-
- 最初の列-ファイルの合計行数を示します。
- 2番目の列-ファイル内の単語の総数を示します。
- 3番目の列-ファイルの合計バイト数を示します。 これはファイルの実際のサイズです。
- 4番目の列-filenameを示します。
一度に複数のファイルを提供して、それらに関する情報を取得できます。 以下は簡単な構文です-
$ wc filename1 filename2 filename3
ファイルをコピーする
ファイルをコピーするには、cp
コマンドを使用します。 コマンドの基本的な構文は次のとおりです-
$ cp source_file destination_file
以下のは、既存のファイルのfilenameのコピーを作成する実例です。
$ cp filename copyfile
$
これで、現在のディレクトリに別のファイルcopyfile
が見つかります。 ファイル名は元のファイルとまったく同じです。
ファイル名を変更する
ファイル名を変更するには、mv
コマンドを使用します。 以下は基本的な構文です-
$ mv old_file new_file
次のプログラムでは、既存のファイルのfilenameをnewfileに変更します。
$ mv filename newfile
$
MV
コマンドは、既存のファイルを新しいファイルに完全に移動します。 この場合、newfile
は現在のディレクトリにのみあります。
ファイルを削除する
既存のファイルを削除するには、rm
コマンドを使用します。 以下は基本的な構文です-
$ rm filename
ヒント–ファイルには有用な情報が含まれている場合があります。 Delete
コマンドを使用するときは、常に注意することをお勧めします。 rm
コマンドで-i
オプションを使用することをお勧めします。
以下は、既存のファイルのfilenameを完全に削除する方法の実例です。
$ rm filename
$
以下のコマンドを使用して、一度に複数のファイルを削除できます-
$ rm filename1 filename2 filename3
$
標準のUnixストリーム
通常の状況では、すべてのUnixプログラムは起動時に3つのストリーム(ファイル)を開きます-
- stdin-標準入力と呼ばれ、関連するファイル記述子は0です。 STDINとも呼ばれます。 Unixプログラムは、STDINからデフォルトの入力を読み取ります。
- stdout-標準出力と呼ばれ、関連するファイル記述子は1です。 STDOUTとも呼ばれます。 Unixプログラムは、デフォルトの出力をSTDOUTに書き込みます
- stderr-標準エラーと呼ばれ、関連するファイル記述子は2です。 STDERRとも呼ばれます。 Unixプログラムは、すべてのエラーメッセージをSTDERRに書き込みます。
コメントを残す