Solaris のシステム管理 (ネーミングとディレクトリサービス : FNS、NIS+ 編)

テーブルからエントリを削除する

1 つのエントリを削除する

テーブルから 1 つのエントリを削除するには、次に示すように -r オプションを指定します。


nistbladm -r indexed-name

次に示すコマンドでは、depts テーブルから Manf-1 エントリを削除します。


rootmaster% nistbladm -r [Dept=Manf-1,Site=Emeryville,Name=hosteen], \
depts.doc.com. 

指定する列の値の数は最小限に減らすことができます。NIS+ では、列の値の重複が見つかると、行は 1 つも削除されることなく、エラーが返されます。次のテーブルから Manf-1 エントリを削除するには、次に示すように Site 列の値を指定するだけで済みます。


rootmaster% nistbladm -r [Site=Emeryville],depts.doc.com. 

しかし、R&D エントリも Sales エントリと同じ値を持っているため、Site 列の値 (SanFran) を指定するだけでは Sales エントリを削除できません。

Dept 

Site 

Name 

R&D 

SanFran

kuznetsov

Sales 

SanFran

jhill

Manf-1 

Emeryville

hosteen

Manf-2 

Sausalito

lincoln

複数のエントリを削除する

テーブルから複数のエントリを削除するには、次に示すように -R オプションを指定します。


nistbladm -R indexedname

オプションが -r であれば、最小限必要な列値を指定するだけで済みます。しかし、上記のコマンドでは -R が指定されているので、NIS+ が重複を見つけると、それに該当するすべてのエントリが削除されます。テーブル内の列の名前を確認したい場合は、niscat -o コマンドを実行します。次のコマンドを実行すると、Site 列の値が SanFran であるすべてのエントリが削除されます。


rootmaster% nistbladm -R [Site=SanFran],depts.doc.com. 

Dept 

Site 

Name 

Manf-1 

Emeryville

hosteen

Manf-2 

Sausalito

lincoln

-R オプションを使用して、テーブルからすべてのエントリを削除することができます。次に示すように、列の値を指定しなければテーブル内のすべてのエントリを削除できます。


rootmaster% nistbladm -R [],depts.doc.com.

nistbladm -R コマンドと共に使用すると、一対の空の角カッコはすべてのテーブル列を指定するワイルドカードとして解釈されます。