Previous: Advanced Cleaning Variables, Up: Advanced Mark Commands

7.3 Special Marking Function

M-(
(dired-mark-sexp) Mark files for which predicate returns non-nil. With a prefix argument, unflag those files instead.

The predicate is a Lisp expression that can refer to the following symbols:

inode
[integer] the inode of the file (only for ‘ls -i’ output)
s
[integer] the size of the file for ‘ls -s’ output (usually in blocks or, with ‘-k’, in KBytes)
mode
[string] file permission bits, e.g., ‘-rw-r--r--
nlink
[integer] number of links to file
uid
[string] owner
gid
[string] group (If the gid is not displayed by ‘ls’, this will still be set (to the same as uid))
size
[integer] file size in bytes
time
[string] the time that ‘ls’ displays, e.g., ‘Feb 12 14:17
name
[string] the name of the file
sym
[string] if file is a symbolic link, the linked-to name, else ""

For example, use

          (equal 0 size)

to mark all zero length files.

To find out all not yet compiled Emacs Lisp files in a directory, Dired all .el files in the lisp directory using the wildcard ‘*.el’. Then use M-( with

          (not (file-exists-p (concat name "c")))

to mark all .el files without a corresponding .elc file.