Next: , Previous: Shell Commands in Dired, Up: Dired


26.9 diredでのファイル名の変換

ここにあげるコマンドはファイル名を組織的に変更します。

% 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つのコマンドは、実質的には、 diredバッファにおいて一連の選択したファイルの名前を 探索して置換を行います。 これらは引数を2つ読み取ります。 正規表現fromと置換パターンtoです。

これらのコマンドは、正規表現fromに一致する各『古い』ファイル名の 一致した部分をtoで置換します。 replace-regexp(see Regexp Replace)のように、 toの中では‘\&’や‘\digit’を用いて 古いファイル名に一致したパターン全体やその一部を参照できます。 ファイル名の2箇所以上の部分に正規表現が一致する場合には、 最初の一致部分が置換されます。

たとえば、% R ^.*$ <RET> x-\& <RET>は、 選択されたファイルの名前の先頭にx-を付け加える形で 名前を変えます。 逆に、各ファイルの名前の先頭の‘x-’を取り去ることもできて、 1つの方法は、% R ^x-\(.*\)$ <RET> \1 <RET>です。 あるいは、% R ^x- <RET> <RET>でもできます。 (ファイル名全体に一致するようにするには‘^’と‘$’を使う。)

通常、置換処理ではファイル名のディレクトリ部分は考慮しません。 ディレクトリ内のファイルの名前だけを操作します。 数引数0を指定すると、置換はディレクトリ名を含んだ絶対ファイル名に作用します。

一連のファイルを操作対象に選ぶときに、 それらを操作するときに使うのと同じregexp(正規表現)を使いたい場合が あるでしょう。 これを行うには、% m regexp <RET>でまず一連のファイルに 印を付けてから、それらを操作するコマンドにも同じ正規表現を使います。 これを簡単に行えるように、 %の付いたコマンドは、%付きコマンドいずれかに最近指定した 正規表現をデフォルトで使います。