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.