GNU Info

Info Node: (emacs)Transforming File Names

(emacs)Transforming File Names


Next: Comparison in Dired Prev: Shell Commands in Dired Up: Dired
Enter node , (file) or (file)node

Transforming File Names in Dired
================================

   This section describes Dired commands which alter file names in a
systematic way.

   Like the basic Dired file-manipulation commands (Note: Operating on
Files), the commands described here operate either on the next N
files, or on all files marked with `*', or on the current file.  (To
mark files, use the commands described in Note: Marks vs Flags.)

   All of the commands described in this section work _interactively_:
they ask you to confirm the operation for each candidate file.  Thus,
you can select more files than you actually need to operate on (e.g.,
with a regexp that matches many files), and then refine the selection
by typing `y' or `n' when the command prompts for confirmation.

`% u'
     Rename each of the selected files to an upper-case name
     (`dired-upcase').  If the old file names are `Foo' and `bar', the
     new names are `FOO' and `BAR'.

`% l'
     Rename each of the selected files to a lower-case name
     (`dired-downcase').  If the old file names are `Foo' and `bar',
     the new names are `foo' and `bar'.

`% R FROM <RET> TO <RET>'
`% C FROM <RET> TO <RET>'
`% H FROM <RET> TO <RET>'
`% S FROM <RET> TO <RET>'
     These four commands rename, copy, make hard links and make soft
     links, in each case computing the new name by regular-expression
     substitution from the name of the old file.

   The four regular-expression substitution commands effectively perform
a search-and-replace on the selected file names in the Dired buffer.
They read two arguments: a regular expression FROM, and a substitution
pattern TO.

   The commands match each "old" file name against the regular
expression FROM, and then replace the matching part with TO.  You can
use `\&' and `\DIGIT' in TO to refer to all or part of what the pattern
matched in the old file name, as in `replace-regexp' (Note: Regexp
Replace).  If the regular expression matches more than once in a file
name, only the first match is replaced.

   For example, `% R ^.*$ <RET> x-\& <RET>' renames each selected file
by prepending `x-' to its name.  The inverse of this, removing `x-'
from the front of each file name, is also possible: one method is `% R
^x-\(.*\)$ <RET> \1 <RET>'; another is `% R ^x- <RET> <RET>'.  (Use `^'
and `$' to anchor matches that should span the whole filename.)

   Normally, the replacement process does not consider the files'
directory names; it operates on the file name within the directory.  If
you specify a numeric argument of zero, then replacement affects the
entire absolute file name including directory name.  (Non-zero argument
specifies the number of files to operate on.)

   Often you will want to select the set of files to operate on using
the same REGEXP that you will use to operate on them.  To do this, mark
those files with `% m REGEXP <RET>', then use the same regular
expression in the command to operate on the files.  To make this
easier, the `%' commands to operate on files use the last regular
expression specified in any `%' command as a default.


automatically generated by info2www version 1.2.2.9