Diredの最も一般的な使い方の一つは、まずファイルを削除対象としてマークし、次にそのマークされたファイルを削除することです。
このファイルを削除対象としてフラグ立てしてください (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) は上方向に移動しながらフラグを解除するもので、引数
−1 を指定した u
と同様の動作をします。いずれのコマンドにおいても、数値の接頭辞引数は繰り返し回数として機能し、負の回数を指定すると逆方向にフラグを解除します。リージョンがアクティブな場合、これらのコマンドはポイントを移動させず、代わりにリージョン内のすべてのファイルのフラグを解除します。
フラグ付きのファイルを削除するには、x (dired-do-flagged-delete)
と入力します。このコマンドは、削除対象としてフラグが立てられたすべてのファイル名の一覧を表示し、yes
で確認を求めます。確認すると、Dired はフラグ付きのファイルを削除し、続いて Dired
バッファのテキストからその行を削除します。行数がわずかに減少した状態の Dired バッファは、引き続き選択されたままとなります。
確認を求められた際に no と回答するか C-g で終了すると、バッファに削除フラグが残ったまま直ちに Dired に戻り、実際にファイルが削除されることはありません。
空のディレクトリは他のファイルと同様に削除できますが、通常、Diredは中身があるディレクトリを削除できません。ただし、変数 dired-recursive-deletes が nil
以外の場合、Diredは中身を含む空でないディレクトリを削除できます。これは少々リスクを伴う場合があります。変数の値が always の場合、Diredは空でないディレクトリを再帰的に削除するため、さらにリスクが高くなります。
dired-recursive-deletes を nil
に設定していても、すべてのディレクトリに対して確認を求められることなく、再帰的にディレクトリを削除したい場合があるでしょう。例えば、多くのディレクトリを削除対象として指定し、それらすべてを安全に削除できると確信している場合などが考えられます。空でないディレクトリごとに削除の確認が求められた際、all と回答すれば、残りのすべてのディレクトリが追加の確認なしに削除されます。
変数 delete-by-moving-to-trash を t
に変更すると、上記の削除コマンドは、対象のファイルやディレクトリを完全に削除するのではなく、オペレーティングシステムのゴミ箱に移動します。その他のファイル操作を参照してください。
ファイルを削除する別の方法として、m でマークし、D で削除する方法があります。ファイルの操作を参照してください。