rm, rmdir - ディレクトリのエントリの削除
/usr/bin/rm [-f] [-i] file...
/usr/bin/rm -rR [-f] [-i] dirname... [file]...
/usr/xpg4/bin/rm [-fiRr] file...
/usr/bin/rmdir [-ps] dirname...
rm ユーティリティーは、file オペランドで示された各ディレクトリエントリを削除します。file に書き込み権がなく、標準入力が端末の場合、そのファイルに対するすべてのアクセス権 (8 進数) が出力され、後ろに疑問符がつけられます。これは、確認を求めるプロンプトです。回答が肯定の場合、ファイルが削除されます。それ以外の場合、ファイルはそのままです。
file がシンボリックリンクの場合、リンクは削除されますが、参照するファイルまたはディレクトリは削除されません。ユーザーがシンボリックリンクを削除する際、そのディレクトリに書き込み権があれば、シンボリックリンクに書き込み権は必要ありません。
複数のファイルが指定され、何らかの理由でそのうちの 1 つが削除できなかった場合、rm は診断メッセージを標準エラー出力に書き出し、そのファイルにはそれ以上の処理は行わず、残りの file を処理します。
標準入力が端末でない場合、rm は –f オプションが指定されている場合と同様に動作します。
rmdir ユーティリティーは、dirname オペランドで示されたディレクトリのエントリを削除します。dirname は空のディレクトリを指している必要があります。
ディレクトリは指定された順序で処理されます。したがって、あるディレクトリとそのディレクトリのサブディレクトリを 1 度の rmdir 呼び出しで削除したい場合、サブディレクトリを親ディレクトリよりも前に指定して先に削除し、親ディレクトリの削除のときにディレクトリが空になるようにしてください。
次のオプションは、/usr/bin/rm と /usr/xpg4/bin/rm で使用できます。
引数リストにあるディレクトリおよび サブディレクトリを再帰的に削除します。ディレクトリ内は空にされ、削除されます。通常、ディレクトリにある書き込み保護された任意のファイルの削除には、ユーザーに確認を求めるプロンプトが出されます。ただし、–f オプションが使用されている場合、または 標準入力が端末ではなく、しかも –i オプションが使用されていない場合、書き込み保護されたファイルはプロンプトなしで削除されます。
このオプションが使用されたシンボリックリンクは、シンボリックリンク先には及びません。
書き込み保護された空でないディレクトリを削除しようとすると、このコマンドは常に (–f オプションが使用されている場合でも) 失敗に終わり、エラーメッセージが表示されます。
–rオプションと同じです。
次のオプションは、/usr/bin/rm でのみ使用できます。
ユーザーへの指示なしにディレクトリ内のファイル (書き込み保護されているファイルも含む) を削除します。しかし、書き込み保護されたディレクトリでは、(たとえどんなアクセス権があっても) ファイルは決して削除されず、それについてのメッセージは表示されません。
対話型。このオプションを使用すると、rm はファイルを削除する前に、確認を求めるプロンプトを出します。これは –f オプションより優先され、標準入力が端末でない場合でもその効力を持続します。
次のオプションは、/usr/xpg4/bin/rm のみでサポートされています。
確認を求めるプロンプトメッセージを出力しません。存在しないものがオペランドで指定されても、診断メッセージを出力したり終了ステータスを変更したりしません。前に –i オプションが指定されていれば、それを無視します。
確認を求めるプロンプトを出力します。–f オプションが指定されていれば、それを無視します。
次のオプションは、/usr/bin/rmdir でのみ使用できます。
ユーザーはディレクトリ dirname および空になる親ディレクトリを削除できます。パスの全体、または一部が削除されていなければ、メッセージが標準出力に出されます。
–p が有効なときに標準エラーに出力されるメッセージを表示しません。
次のオペランドがサポートされています。
削除されるディレクトリエントリのパス名を指定します。
削除される空ディレクトリのパス名を指定します。
ファイルが 2G バイト (231 バイト) 以上ある場合の rm と rmdir の動作については、largefile(5) を参照してください。
以下の例に、有効なコマンドの使用法を示します。
次のコマンドは、ディレクトリエントリ a.out および core を削除します。
example% rm a.out core使用例 2 確認を求めない、ディレクトリの削除
次のコマンドは、確認を求めずにディレクトリ junk とそのすべての内容を削除します。
example% rm -rf junk
現在のディレクトリに a というディレクトリがあり、そのディレクトリには b というディレクトリだけがあるとします。また b には、c というディレクトリだけがあるものとします。次のコマンドは、3 つのディレクトリすべてを削除します。
example% rmdir -p a/b/c
rm と rmdir の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES、および NLSPATH。
肯定応答は、ユーザーのロケールの LC_MESSAGES カテゴリの yesexpr キーワードで定義されている拡張正規表現を使用して処理されます。LC_COLLATE カテゴリに指定されているロケールは、yesexpr に定義されている式に使用される範囲、同等クラス、および複数文字照合要素の動作を定義します。LC_CTYPE に指定されているロケールは、テキストデータのバイト列を文字として解釈するロケールや、yesexpr に定義されている式に使用される文字クラスの動作を定義します。locale(5) を参照してください。
次の終了ステータスが返されます。
–f オプション省略時は、指定されたすべてのディレクトリエントリが削除されたことを示す。f オプション指定時は、指定されたすべての既存のディレクトリエントリが 削除されたことを示す。
エラーが発生した。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
|
rmdir(2), unlink(2), attributes(5), environ(5), largefile(5), standards(5)
うっかりして次のようなことを行わないために、ファイル "." および “..” を削除することは禁じられています。
example% rm -r .*
ファイル「/」を削除することは禁止されています。これは、間違って以下のような状況になってしまったときに、惨劇を起こさないようにするためです。
example% rm -rf $x/$y
または
example% rm -rf /$y
そして、$xと $y が空の文字列に展開される場合です。
- を使用することにより、ユーザーは任意のコマンド行オプションの最後を明白に記すことができ、rm は - で始まるファイル名の引数を認識できます。BSD 移行の補助として、rm は - - を - の同義語として受け入れます。この導入補助は、将来のリリースでは提供されない可能性があります。- - と - の両方が同一コマンド行にある場合は、2 つめがファイルとして解釈されます。