もっともよく使われるDiredの使用法は、最初にファイルを削除するためにフラグ(flag)をつけて、その後にフラグがつけられたファイルを削除をする方法です。
削除するために、このファイルにフラグをつけます(dired-flag-file-deletion
)。
削除フラグを外します(dired-unmark
)。
その行の削除フラグを外して、ポイントを前の行に移動します(dired-unmark-backward
)。
削除のフラグがつけられたファイルを削除します(dired-do-flagged-delete
)。
ファイルが記述されている行に移動して、d
(dired-flag-file-deletion
)とタイプすることにより、ファイルを削除するためのフラグをつけることができます。削除フラグは行頭に‘D’が表示されます。このコマンドはポイントを次の行に移動するので、dコマンドを繰り返すことにより、連続してファイルにフラグをつけることができます。数引数は繰り返し回数を指定します。負の引数は前のファイルにフラグをつけることを意味します。
リージョンがアクティブの場合、dコマンドはリージョンのすべてのファイルに削除のフラグをつけます。この場合、コマンドはポイントを移動せず、プレフィクス引数も無視します。
ファイルを即座に削除せず、削除のフラグをファイルにつける理由は、意図しないファイルを削除する危険を軽減するためです。フラグがついたファイルをDiredに削除をさせる前に、コマンドuまたはDELで、削除フラグを外すことができます。u
(dired-unmark
)はdと同じように機能しますが、これはフラグをつけるのではなくフラグを外します。DEL
(dired-unmark-backward
)は、上に移動してフラグを外します。これはuに引数−1を指定するのと同じです。どちらのコマンドも、数引数は繰り返し回数で、負の引数は反対方向にフラグを外していくことを意味します。リージョンがアクティブの場合、ポイントを移動せずにリージョン内のすべてのファイルのフラグを外します。
フラグがついたファイルを削除するには、x
(dired-do-flagged-delete
)とタイプします。このコマンドは削除フラグがついた、すべてのファイルのリストを表示して、確認を求めます。もしこれにyesと応えた場合、Diredはフラグがついたファイルを削除して、それらのファイルにたいするDiredバッファーの行を削除します。Diredバッファーの行数は少し減り、バッファーは選択されたまま残ります。
確認を求められたときnoと応えるか、C-gで中断した場合は、即座にDiredに戻ります。バッファーの削除フラグはそのまま残り、実際に削除されたファイルはありません。
空ディレクトリーは他のファイルと同様に削除できますが、Diredは通常、空でないディレクトリーは削除できません。しかし変数dired-recursive-deletes
が非nil
の場合には、Diredはディレクトリーの内容も含めて、空でないディレクトリーを削除できます。dired-recursive-deletes
をnil
にセットしている場合でも、ディレクトリーの内容すべてについて問い合わせされることなく、ディレクトリーを再帰的に削除したいこともあるかもしれません。これには若干の危険が伴います。変数の値がalways
の場合は、さらに危険性は増すとはいえ、Diredは空でないディレクトリーを再帰的に削除するでしょう。
dired-recursive-deletes
をnil
にセットしている場合でも、ディレクトリーの内容すべてについて問い合わせされることなく、ディレクトリーを再帰的に削除したいこともあるかもしれません。たとえば、多くのディレクトリーにたいして、それらすべてを安全に削除できると確信がもてるときは、それらに削除のマークを付与したいと思うかもしれません。空でないディレクトリーすべてにたいして、確認が求められますが、all
と応えた場合は、それ以上の問い合わせなしで残りすべてのディレクトリーが削除されます。
変数delete-by-moving-to-trash
をt
に変更した場合、上記の削除コマンドは対象となるファイルおよびディレクトリーを削除するかわりに、システムのTrash(ゴミ箱)に移動します。その他のファイル操作を参照してください。
ファイルを削除する代替手段は、それらをmでマークしてDで削除する方法です。ファイルにたいする操作を参照してください。