Next: , Previous: , Up: Dired   [Contents][Index]


30.9 Diredでのファイル名の変更

このセクションでは、ファイル名を系統的な方法で変更する、Diredコマンドを説明します。各コマンドは、既存の名前を変換することにより作成される新しい名前を使って、マークされたファイルのいくつか、またはすべてのマークされたファイルを操作します。

基本的なDiredのファイル操作コマンド(Operating on Filesを参照してください)と同じように、ここで説明するコマンドは次のnファイル、または‘*’でマークされたすべてのファイル、またはカレントファイルにたいして操作を行ないます(ファイルをマークする方法はMarks vs Flagsで説明されています)。

このセクションで説明するすべてのコマンドは、対話的に機能します。つまり候補となるファイルごとに確認を求めます。したがって、実際に操作が必要なファイルより多くのファイルを選択(たとえばregexpにより多くのファイルを選択)して、コマンドが確認を求めるときにyまたはnをタイプすることにより、選択されたファイルを絞り込むことができます。

% u

選択されたファイルを、大文字の名前にリネームします(dired-upcase)。古いファイル名がFoobarの場合、新しい名前はFOOBARになります。

% l

選択されたファイルを、小文字の名前にリネームします(dired-downcase)。古いファイル名がFoobarの場合、新しい名前はfoobarになります。

% R from RET to RET
% C from RET to RET
% H from RET to RET
% S from RET to RET

これら4つのコマンドは、それぞれリネーム、コピー、ハードリンクの作成、ソフトリンクの作成を行い、古いファイル名にたいして正規表現による置換を行って、新しい名前を作成します。

正規表現の置換を行なう4つのコマンドは、実際には選択されたファイルの名前にたいして検索と置換を行ないます。これらのコマンドは2つの引数を読み取ります。それは式fromと、置換パターンtoです。これらは“古い”ファイル名にマッチしたfromを、toに置き換えます。replace-regexp (Regexp Replaceを参照してください)のように、古い名前にマッチしたパターンの全体または一部を参照するために、toの中で‘\&’や‘\digit’を使用できます。正規表現がファイル名の複数の箇所にマッチする場合は、最初のマッチだけが置換されます。

たとえば% R ^.*$ RET x-\& RETは、選択された各ファイルの名前の前に‘x-’を追加してリネームします。逆に各ファイル名の前の‘x-’を削除することも可能です。1つは% R ^x-\(.*\)$ RET \1 RETとする方法です。他にも% R ^x- RET RETとする方法もあります(ファイル名の範囲を指定するために、アンカーへのマッチ‘^’および‘$’を使用しています)。

置換処理は通常、ファイルのディレクトリー名は考慮しません。これはディレクトリーにあるファイル名だけを操作します。しかし数引数を0にした場合、置換はディレクトリー名を含めた絶対ファイル名に作用します(非0の引数は、操作するファイルの個数を指定します)。

一連のファイルを操作対象に選択するために、それらを操作するときに使うのと同じ正規表現fromを使いたいと思うかもしれません。これを行なうには% m from RETでそれらのファイルをマークして、それらのファイルを操作するコマンドで同じ正規表現を使用します。もっと便利にするために、ファイルを操作する%コマンドは、最後の%コマンドで指定された正規表現をデフォルトで使用します。