This section describes the basic Dired commands to operate on one file or several files. All of these commands are capital letters; all of them use the minibuffer, either to read an argument or to ask for confirmation, before they act. All of them let you specify the files to manipulate in these ways:
Certain other Dired commands, such as ! and the ‘%’ commands, use the same conventions to decide which files to work on.
Commands which ask for a destination directory, such as those which
copy and rename files or create links for them, try to guess the default
target directory for the operation. Normally, they suggest the Dired
buffer's default directory, but if the variable
nil, and if there is another Dired buffer displayed in the
next window, that other buffer's directory is suggested instead.
Here are the file-manipulating Dired commands that operate on files.
dired-do-copy). The argument new is the directory to copy into, or (if copying a single file) the new name. This is like the shell command
dired-copy-preserve-time is non-
nil, then copying
with this command preserves the modification time of the old file in
the copy, like ‘cp -p’.
dired-recursive-copies controls whether to copy
directories recursively (like ‘cp -r’). The default is
top, which means to ask before recursively copying a directory.
dired-do-delete). This is like the shell command
Like the other commands in this section, this command operates on the
marked files, or the next n files. By contrast, x
dired-do-flagged-delete) deletes all flagged files.
dired-do-rename). If you rename a single file, the argument new is the new name of the file. If you rename several files, the argument new is the directory into which to move the files (this is like the shell command mv).
Dired automatically changes the visited file name of buffers associated with renamed files so that they refer to the new names.
dired-do-hardlink). This is like the shell command ln. The argument new is the directory to make the links in, or (if making just one link) the name to give the link.
dired-do-symlink). This is like ‘ln -s’. The argument new is the directory to make the links in, or (if making just one link) the name to give the link.
dired-do-chmod). modespec can be in octal or symbolic notation, like arguments handled by the chmod program.
dired-do-chown). (On most systems, only the superuser can do this.)
dired-chown-program specifies the name of the
program to use to do the work. (This variable is necessary because
different systems put chown in different places).
dired-do-touch). This means updating their modification times to the present time. This is like the shell command
dired-do-print). You must specify the command to print them with, but the minibuffer starts out with a suitable guess made using the variables
lpr-switches(the same variables that
lpr-bufferuses; see Printing).
dired-do-compress). If the file appears to be a compressed file already, uncompress it instead. Each marked file is compressed into its own archive. This uses the gzip program if it is available, otherwise it uses compress.
dired-do-compress-to) into a single archive anywhere on the file system. The compression algorithm is determined by the extension of the archive, see
epa-dired-do-decrypt). See Dired integration.
epa-dired-do-verify). See Dired integration.
epa-dired-do-sign). See Dired integration.
epa-dired-do-encrypt). See Dired integration.
dired-do-load). See Lisp Libraries.
dired-do-byte-compile). See Byte Compilation.
This command is a variant of
(see Identifier Search), it displays the *xref* buffer,
where you can navigate between matches and display them as needed
using the commands described in Xref Commands.
If any of the marked files are directories, then this command searches
all of the files in those directories, and any of their
subdirectories, recursively, except files whose names match
grep-find-ignored-files and subdirectories whose names match
query-replace-regexpon each of the specified files, replacing matches for regexp with the string to (
This command is a variant of
presents an *xref* buffer that lists all the matches of regexp,
and you can use the special commands in that buffer (see Xref Commands). In particular, if you exit the query replace loop, you
can use r in that buffer to replace more matches.
See Identifier Search.
dired-do-find-regexp, if any of the marked files are
directories, this command performs replacements in all of the files in
those directories, and in any of their subdirectories, recursively,
except for files whose names match
subdirectories whose names match