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, the Directory Editor.
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 Miscellaneous File Operations,
for more information about using the Trash.