GNU Emacs Manual. Node: Marks vs Flags

PREVDired Visiting UPDired NEXTOperating on Files

26.6: Dired Marks vs. Flags

Instead of flagging a file with `D', you can mark the file with some other character (usually `*'). Most Dired commands to operate on files, aside from ``expunge'' (x), look for files marked with `*'.

Here are some commands for marking with `*', or for unmarking or operating on marks. (See Dired Deletion, for commands to flag and unflag files.)

m
* m

Mark the current file with `*' (dired-mark). With a numeric argument n, mark the next n files starting with the current file. (If n is negative, mark the previous ­n files.)

* *

Mark all executable files with `*' (dired-mark-executables). With a numeric argument, unmark all those files.

* @

Mark all symbolic links with `*' (dired-mark-symlinks). With a numeric argument, unmark all those files.

* /

Mark with `*' all files which are actually directories, except for `.' and `..' (dired-mark-directories). With a numeric argument, unmark all those files.

* s

Mark all the files in the current subdirectory, aside from `.' and `..' (dired-mark-subdir-files).

u
* u

Remove any mark on this line (dired-unmark).

DEL
* DEL

Move point to previous line and remove any mark on that line (dired-unmark-backward).

* !

Remove all marks from all the files in this Dired buffer (dired-unmark-all-files-no-query).

* ? markchar

Remove all marks that use the character markchar (dired-unmark-all-files). The argument is a single character---do not use RET to terminate it.

With a numeric argument, this command queries about each marked file, asking whether to remove its mark. You can answer y meaning yes, n meaning no, or ! to remove the marks from the remaining files without asking about them.

* C-n

Move down to the next marked file (dired-next-marked-file) A file is ``marked'' if it has any kind of mark.

* C-p

Move up to the previous marked file (dired-prev-marked-file)

* t

Toggle all marks (dired-do-toggle): files marked with `*' become unmarked, and unmarked files are marked with `*'. Files marked in any other way are not affected.

* c old new

Replace all marks that use the character old with marks that use the character new (dired-change-marks). This command is the primary way to create or use marks other than `*' or `D'. The arguments are single characters---do not use RET to terminate them.

You can use almost any character as a mark character by means of this command, to distinguish various classes of files. If old is a space (` '), then the command operates on all unmarked files; if new is a space, then the command unmarks the files it acts on.

To illustrate the power of this command, here is how to put `D' flags on all the files that have no marks, while unflagging all those that already have `D' flags:

* c D t  * c SPC D  * c t SPC

This assumes that no files are marked with `t'.

% m regexp RET
* % regexp RET

Mark (with `*') all files whose names match the regular expression regexp (dired-mark-files-regexp). This command is like % d, except that it marks files with `*' instead of flagging with `D'. See Flagging Many Files.

Only the non-directory part of the file name is used in matching. Use `^' and `$' to anchor matches. Exclude subdirectories by hiding them (see Hiding Subdirectories).

% g regexp RET

Mark (with `*') all files whose contents contain a match for the regular expression regexp (dired-mark-files-containing-regexp). This command is like % m, except that it searches the file contents instead of the file name.

C-_

Undo changes in the Dired buffer, such as adding or removing marks (dired-undo).

PREVDired Visiting UPDired NEXTOperating on Files