18.8 File Directories
The file system groups files into directories. A directory listing is a list of all the files in a directory. Emacs provides commands to create and delete directories, and to make directory listings in brief format (file names only) and verbose format (sizes, dates, and other attributes included). Emacs also includes a directory browser feature called Dired, which you can invoke with C-x d
; see Dired.
C-x C-d dir-or-pattern RET
​
Display a brief directory listing (list-directory
).
C-u C-x C-d dir-or-pattern RET
​
Display a verbose directory listing.
M-x make-directory RET dirname RET
​
Create a new directory named dirname
.
M-x delete-directory RET dirname RET
​
Delete the directory named dirname
. If it isn’t empty, you will be asked whether you want to delete it recursively.
The command to display a directory listing is C-x C-d
(list-directory
). It reads using the minibuffer a file name which is either a directory to be listed or a wildcard-containing pattern for the files to be listed. For example,
C-x C-d /u2/emacs/etc RET
lists all the files in directory /u2/emacs/etc
. Here is an example of specifying a file name pattern:
C-x C-d /u2/emacs/src/*.c RET
Normally, C-x C-d
displays a brief directory listing containing just file names. A numeric argument (regardless of value) tells it to make a verbose listing including sizes, dates, and owners (like ‘ls -l
’).
The text of a directory listing is mostly obtained by running ls
in an inferior process. Two Emacs variables control the switches passed to ls
: list-directory-brief-switches
is a string giving the switches to use in brief listings ("-CF"
by default), and list-directory-verbose-switches
is a string giving the switches to use in a verbose listing ("-l"
by default).
In verbose directory listings, Emacs adds information about the amount of free space on the disk that contains the directory.
The command M-x delete-directory
prompts for a directory’s name using the minibuffer, and deletes the directory if it is empty. If the directory is not empty, you will be asked whether you want to delete it recursively. On systems that have a “Trash" (or “Recycle Bin") feature, you can make this command move the specified directory to the Trash instead of deleting it outright, by changing the variable delete-by-moving-to-trash
to t
. See Misc File Ops, for more information about using the Trash.