annotate man/dired.texi @ 38212:6b14cc47a4f2

Major rewrite. Sections Tags, Emerge, Change Log and Authors moved to maintaining.texi. Some sections reordered. Node Misc for Programs moved to just before the language-specific sections. New node Defuns contains an intro plus the old Defuns node (now renamed Moving by Defuns) as well as Imenu, Which Function, and a node Left Margin Paren to explain the convention about this. New node Parentheses now documents M-x check-parens. It contains subnodes Expressions, Moving by Parens, and Matching. Expressions and Moving by Parens contain the material formerly in Lists and List Commands, but divided up differently. The section Balanced Editing has been deleted. Most of the C indentation customization (all except c-set-style), has been replaced with a reference to the C Modes manual. Documentation now is divided into three subsections. Some rewrites in the Program Indent section about C-u TAB and C-M-q.
author Richard M. Stallman <rms@gnu.org>
date Tue, 26 Jun 2001 13:43:32 +0000
parents e46c555b62c8
children 5464ee1ba8e2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1 @c This is part of the Emacs manual.
28126
e7cf77f27506 Fix copyright line.
Dave Love <fx@gnu.org>
parents: 28041
diff changeset
2 @c Copyright (C) 1985, 86, 87, 93, 94, 95, 97, 2000
e7cf77f27506 Fix copyright line.
Dave Love <fx@gnu.org>
parents: 28041
diff changeset
3 @c Free Software Foundation, Inc.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
4 @c See file emacs.texi for copying conditions.
Dave Love <fx@gnu.org>
parents:
diff changeset
5 @node Dired, Calendar/Diary, Rmail, Top
Dave Love <fx@gnu.org>
parents:
diff changeset
6 @chapter Dired, the Directory Editor
Dave Love <fx@gnu.org>
parents:
diff changeset
7 @cindex Dired
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
8 @cindex file management
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
9
Dave Love <fx@gnu.org>
parents:
diff changeset
10 Dired makes an Emacs buffer containing a listing of a directory, and
Dave Love <fx@gnu.org>
parents:
diff changeset
11 optionally some of its subdirectories as well. You can use the normal
Dave Love <fx@gnu.org>
parents:
diff changeset
12 Emacs commands to move around in this buffer, and special Dired commands
Dave Love <fx@gnu.org>
parents:
diff changeset
13 to operate on the files listed.
Dave Love <fx@gnu.org>
parents:
diff changeset
14
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
15 The Dired buffer is ``read-only,'' and inserting text in it is not
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
16 useful, so ordinary printing characters such as @kbd{d} and @kbd{x} are
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
17 used for special Dired commands. Some Dired commands @dfn{mark} or
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
18 @dfn{flag} the @dfn{current file} (that is, the file on the current
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
19 line); other commands operate on the marked files or on the flagged
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
20 files.
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
21
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
22 The Dired-X package provides various extra features for Dired mode.
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
23 @xref{Dired-X,,,dired-x, Dired Extra Version 2 User's Manual}.
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
24
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
25 @menu
Dave Love <fx@gnu.org>
parents:
diff changeset
26 * Enter: Dired Enter. How to invoke Dired.
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
27 * Navigation: Dired Navigation. How to move in the Dired buffer.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
28 * Deletion: Dired Deletion. Deleting files with Dired.
Dave Love <fx@gnu.org>
parents:
diff changeset
29 * Flagging Many Files:: Flagging files based on their names.
Dave Love <fx@gnu.org>
parents:
diff changeset
30 * Visit: Dired Visiting. Other file operations through Dired.
Dave Love <fx@gnu.org>
parents:
diff changeset
31 * Marks vs Flags:: Flagging for deletion vs marking.
Dave Love <fx@gnu.org>
parents:
diff changeset
32 * Operating on Files:: How to copy, rename, print, compress, etc.
Dave Love <fx@gnu.org>
parents:
diff changeset
33 either one file or several files.
Dave Love <fx@gnu.org>
parents:
diff changeset
34 * Shell Commands in Dired:: Running a shell command on the marked files.
Dave Love <fx@gnu.org>
parents:
diff changeset
35 * Transforming File Names:: Using patterns to rename multiple files.
Dave Love <fx@gnu.org>
parents:
diff changeset
36 * Comparison in Dired:: Running `diff' by way of Dired.
Dave Love <fx@gnu.org>
parents:
diff changeset
37 * Subdirectories in Dired:: Adding subdirectories to the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
38 * Subdirectory Motion:: Moving across subdirectories, and up and down.
Dave Love <fx@gnu.org>
parents:
diff changeset
39 * Hiding Subdirectories:: Making subdirectories visible or invisible.
Dave Love <fx@gnu.org>
parents:
diff changeset
40 * Updating: Dired Updating. Discarding lines for files of no interest.
Dave Love <fx@gnu.org>
parents:
diff changeset
41 * Find: Dired and Find. Using `find' to choose the files for Dired.
Dave Love <fx@gnu.org>
parents:
diff changeset
42 @end menu
Dave Love <fx@gnu.org>
parents:
diff changeset
43
Dave Love <fx@gnu.org>
parents:
diff changeset
44 @node Dired Enter
Dave Love <fx@gnu.org>
parents:
diff changeset
45 @section Entering Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
46
Dave Love <fx@gnu.org>
parents:
diff changeset
47 @findex dired
Dave Love <fx@gnu.org>
parents:
diff changeset
48 @kindex C-x d
Dave Love <fx@gnu.org>
parents:
diff changeset
49 @vindex dired-listing-switches
Dave Love <fx@gnu.org>
parents:
diff changeset
50 To invoke Dired, do @kbd{C-x d} or @kbd{M-x dired}. The command reads
Dave Love <fx@gnu.org>
parents:
diff changeset
51 a directory name or wildcard file name pattern as a minibuffer argument
Dave Love <fx@gnu.org>
parents:
diff changeset
52 to specify which files to list. Where @code{dired} differs from
Dave Love <fx@gnu.org>
parents:
diff changeset
53 @code{list-directory} is in putting the buffer into Dired mode so that
Dave Love <fx@gnu.org>
parents:
diff changeset
54 the special commands of Dired are available.
Dave Love <fx@gnu.org>
parents:
diff changeset
55
Dave Love <fx@gnu.org>
parents:
diff changeset
56 The variable @code{dired-listing-switches} specifies the options to
Dave Love <fx@gnu.org>
parents:
diff changeset
57 give to @code{ls} for listing directory; this string @emph{must} contain
Dave Love <fx@gnu.org>
parents:
diff changeset
58 @samp{-l}. If you use a numeric prefix argument with the @code{dired}
Dave Love <fx@gnu.org>
parents:
diff changeset
59 command, you can specify the @code{ls} switches with the minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
60 before you enter the directory specification.
Dave Love <fx@gnu.org>
parents:
diff changeset
61
Dave Love <fx@gnu.org>
parents:
diff changeset
62 @findex dired-other-window
Dave Love <fx@gnu.org>
parents:
diff changeset
63 @kindex C-x 4 d
Dave Love <fx@gnu.org>
parents:
diff changeset
64 @findex dired-other-frame
Dave Love <fx@gnu.org>
parents:
diff changeset
65 @kindex C-x 5 d
Dave Love <fx@gnu.org>
parents:
diff changeset
66 To display the Dired buffer in another window rather than in the
Dave Love <fx@gnu.org>
parents:
diff changeset
67 selected window, use @kbd{C-x 4 d} (@code{dired-other-window}) instead
Dave Love <fx@gnu.org>
parents:
diff changeset
68 of @kbd{C-x d}. @kbd{C-x 5 d} (@code{dired-other-frame}) uses a
Dave Love <fx@gnu.org>
parents:
diff changeset
69 separate frame to display the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
70
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
71 @node Dired Navigation
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
72 @section Navigation in the Dired Buffer
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
73
Dave Love <fx@gnu.org>
parents:
diff changeset
74 @kindex C-n @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
75 @kindex C-p @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
76 All the usual Emacs cursor motion commands are available in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
77 buffers. Some special-purpose cursor motion commands are also
Dave Love <fx@gnu.org>
parents:
diff changeset
78 provided. The keys @kbd{C-n} and @kbd{C-p} are redefined to put the
Dave Love <fx@gnu.org>
parents:
diff changeset
79 cursor at the beginning of the file name on the line, rather than at the
Dave Love <fx@gnu.org>
parents:
diff changeset
80 beginning of the line.
Dave Love <fx@gnu.org>
parents:
diff changeset
81
Dave Love <fx@gnu.org>
parents:
diff changeset
82 @kindex SPC @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
83 For extra convenience, @key{SPC} and @kbd{n} in Dired are equivalent
Dave Love <fx@gnu.org>
parents:
diff changeset
84 to @kbd{C-n}. @kbd{p} is equivalent to @kbd{C-p}. (Moving by lines is
Dave Love <fx@gnu.org>
parents:
diff changeset
85 so common in Dired that it deserves to be easy to type.) @key{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
86 (move up and unflag) is often useful simply for moving up.
Dave Love <fx@gnu.org>
parents:
diff changeset
87
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
88 Some additional navigation commands are available when the Dired
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
89 buffer includes several directories. @xref{Subdirectory Motion}.
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
90
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
91 @node Dired Deletion
Dave Love <fx@gnu.org>
parents:
diff changeset
92 @section Deleting Files with Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
93 @cindex flagging files (in Dired)
Dave Love <fx@gnu.org>
parents:
diff changeset
94 @cindex deleting files (in Dired)
Dave Love <fx@gnu.org>
parents:
diff changeset
95
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
96 One of the most frequent uses of Dired is to @dfn{flag} files for
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
97 deletion and then delete the files previously flagged.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
98
Dave Love <fx@gnu.org>
parents:
diff changeset
99 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
100 @item d
Dave Love <fx@gnu.org>
parents:
diff changeset
101 Flag this file for deletion.
Dave Love <fx@gnu.org>
parents:
diff changeset
102 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
103 Remove deletion flag on this line.
Dave Love <fx@gnu.org>
parents:
diff changeset
104 @item @key{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
105 Move point to previous line and remove the deletion flag on that line.
Dave Love <fx@gnu.org>
parents:
diff changeset
106 @item x
Dave Love <fx@gnu.org>
parents:
diff changeset
107 Delete the files that are flagged for deletion.
Dave Love <fx@gnu.org>
parents:
diff changeset
108 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
109
Dave Love <fx@gnu.org>
parents:
diff changeset
110 @kindex d @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
111 @findex dired-flag-file-deletion
Dave Love <fx@gnu.org>
parents:
diff changeset
112 You can flag a file for deletion by moving to the line describing the
Dave Love <fx@gnu.org>
parents:
diff changeset
113 file and typing @kbd{d} (@code{dired-flag-file-deletion}). The deletion flag is visible as a @samp{D} at
Dave Love <fx@gnu.org>
parents:
diff changeset
114 the beginning of the line. This command moves point to the next line,
Dave Love <fx@gnu.org>
parents:
diff changeset
115 so that repeated @kbd{d} commands flag successive files. A numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
116 argument serves as a repeat count.
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
117
27222
e7bd44d5597b Recursive deletes, copies. dired-do-apply. `?' in shell command.
Dave Love <fx@gnu.org>
parents: 25829
diff changeset
118 @vindex dired-recursive-deletes
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
119 The variable @code{dired-recursive-deletes} controls whether the
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
120 delete command will delete non-empty directories (including their
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
121 contents). The default is to delete only empty directories.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
122
Dave Love <fx@gnu.org>
parents:
diff changeset
123 @kindex u @r{(Dired deletion)}
Dave Love <fx@gnu.org>
parents:
diff changeset
124 @kindex DEL @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
125 The files are flagged for deletion rather than deleted immediately to
Dave Love <fx@gnu.org>
parents:
diff changeset
126 reduce the danger of deleting a file accidentally. Until you direct
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
127 Dired to delete the flagged files, you can remove deletion flags using
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
128 the commands @kbd{u} and @key{DEL}. @kbd{u} (@code{dired-unmark}) works
Dave Love <fx@gnu.org>
parents:
diff changeset
129 just like @kbd{d}, but removes flags rather than making flags.
Dave Love <fx@gnu.org>
parents:
diff changeset
130 @key{DEL} (@code{dired-unmark-backward}) moves upward, removing flags;
Dave Love <fx@gnu.org>
parents:
diff changeset
131 it is like @kbd{u} with argument @minus{}1.
Dave Love <fx@gnu.org>
parents:
diff changeset
132
Dave Love <fx@gnu.org>
parents:
diff changeset
133 @kindex x @r{(Dired)}
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
134 @findex dired-do-flagged-delete
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
135 @cindex expunging (Dired)
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
136 To delete the flagged files, type @kbd{x} (@code{dired-do-flagged-delete}).
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
137 (This is also known as @dfn{expunging}.)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
138 This command first displays a list of all the file names flagged for
Dave Love <fx@gnu.org>
parents:
diff changeset
139 deletion, and requests confirmation with @kbd{yes}. If you confirm,
Dave Love <fx@gnu.org>
parents:
diff changeset
140 Dired deletes the flagged files, then deletes their lines from the text
Dave Love <fx@gnu.org>
parents:
diff changeset
141 of the Dired buffer. The shortened Dired buffer remains selected.
Dave Love <fx@gnu.org>
parents:
diff changeset
142
Dave Love <fx@gnu.org>
parents:
diff changeset
143 If you answer @kbd{no} or quit with @kbd{C-g} when asked to confirm, you
Dave Love <fx@gnu.org>
parents:
diff changeset
144 return immediately to Dired, with the deletion flags still present in
Dave Love <fx@gnu.org>
parents:
diff changeset
145 the buffer, and no files actually deleted.
Dave Love <fx@gnu.org>
parents:
diff changeset
146
Dave Love <fx@gnu.org>
parents:
diff changeset
147 @node Flagging Many Files
Dave Love <fx@gnu.org>
parents:
diff changeset
148 @section Flagging Many Files at Once
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
149 @cindex flagging many files for deletion (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
150
Dave Love <fx@gnu.org>
parents:
diff changeset
151 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
152 @item #
Dave Love <fx@gnu.org>
parents:
diff changeset
153 Flag all auto-save files (files whose names start and end with @samp{#})
Dave Love <fx@gnu.org>
parents:
diff changeset
154 for deletion (@pxref{Auto Save}).
Dave Love <fx@gnu.org>
parents:
diff changeset
155
Dave Love <fx@gnu.org>
parents:
diff changeset
156 @item ~
Dave Love <fx@gnu.org>
parents:
diff changeset
157 Flag all backup files (files whose names end with @samp{~}) for deletion
Dave Love <fx@gnu.org>
parents:
diff changeset
158 (@pxref{Backup}).
Dave Love <fx@gnu.org>
parents:
diff changeset
159
Dave Love <fx@gnu.org>
parents:
diff changeset
160 @item &
Dave Love <fx@gnu.org>
parents:
diff changeset
161 Flag for deletion all files with certain kinds of names, names that
Dave Love <fx@gnu.org>
parents:
diff changeset
162 suggest you could easily create the files again.
Dave Love <fx@gnu.org>
parents:
diff changeset
163
Dave Love <fx@gnu.org>
parents:
diff changeset
164 @item .@: @r{(Period)}
Dave Love <fx@gnu.org>
parents:
diff changeset
165 Flag excess numeric backup files for deletion. The oldest and newest
Dave Love <fx@gnu.org>
parents:
diff changeset
166 few backup files of any one file are exempt; the middle ones are
Dave Love <fx@gnu.org>
parents:
diff changeset
167 flagged.
Dave Love <fx@gnu.org>
parents:
diff changeset
168
Dave Love <fx@gnu.org>
parents:
diff changeset
169 @item % d @var{regexp} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
170 Flag for deletion all files whose names match the regular expression
Dave Love <fx@gnu.org>
parents:
diff changeset
171 @var{regexp}.
Dave Love <fx@gnu.org>
parents:
diff changeset
172 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
173
Dave Love <fx@gnu.org>
parents:
diff changeset
174 The @kbd{#}, @kbd{~}, @kbd{&}, and @kbd{.} commands flag many files for
Dave Love <fx@gnu.org>
parents:
diff changeset
175 deletion, based on their file names. These commands are useful
Dave Love <fx@gnu.org>
parents:
diff changeset
176 precisely because they do not themselves delete any files; you can
Dave Love <fx@gnu.org>
parents:
diff changeset
177 remove the deletion flags from any flagged files that you really wish to
Dave Love <fx@gnu.org>
parents:
diff changeset
178 keep.@refill
Dave Love <fx@gnu.org>
parents:
diff changeset
179
Dave Love <fx@gnu.org>
parents:
diff changeset
180 @kindex & @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
181 @findex dired-flag-garbage-files
Dave Love <fx@gnu.org>
parents:
diff changeset
182 @vindex dired-garbage-files-regexp
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
183 @cindex deleting some backup files
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
184 @kbd{&} (@code{dired-flag-garbage-files}) flags files whose names
Dave Love <fx@gnu.org>
parents:
diff changeset
185 match the regular expression specified by the variable
Dave Love <fx@gnu.org>
parents:
diff changeset
186 @code{dired-garbage-files-regexp}. By default, this matches certain
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
187 files produced by @TeX{}, @samp{.bak} files, and the @samp{.orig} and
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
188 @samp{.rej} files produced by @code{patch}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
189
Dave Love <fx@gnu.org>
parents:
diff changeset
190 @kindex # @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
191 @findex dired-flag-auto-save-files
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
192 @cindex deleting auto-save files
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
193 @kbd{#} (@code{dired-flag-auto-save-files}) flags for deletion all
Dave Love <fx@gnu.org>
parents:
diff changeset
194 files whose names look like auto-save files (@pxref{Auto Save})---that
38124
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
195 is, files whose names begin and end with @samp{#}.
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
196
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
197 @kindex ~ @r{(Dired)}
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
198 @findex dired-flag-backup-files
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
199 @kbd{~} (@code{dired-flag-backup-files}) flags for deletion all files
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
200 whose names say they are backup files (@pxref{Backup})---that is, whose
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
201 names end in @samp{~}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
202
Dave Love <fx@gnu.org>
parents:
diff changeset
203 @kindex . @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
204 @vindex dired-kept-versions
Dave Love <fx@gnu.org>
parents:
diff changeset
205 @findex dired-clean-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
206 @kbd{.} (period, @code{dired-clean-directory}) flags just some of the
Dave Love <fx@gnu.org>
parents:
diff changeset
207 backup files for deletion: all but the oldest few and newest few backups
Dave Love <fx@gnu.org>
parents:
diff changeset
208 of any one file. Normally @code{dired-kept-versions} (@strong{not}
Dave Love <fx@gnu.org>
parents:
diff changeset
209 @code{kept-new-versions}; that applies only when saving) specifies the
Dave Love <fx@gnu.org>
parents:
diff changeset
210 number of newest versions of each file to keep, and
Dave Love <fx@gnu.org>
parents:
diff changeset
211 @code{kept-old-versions} specifies the number of oldest versions to
Dave Love <fx@gnu.org>
parents:
diff changeset
212 keep.
Dave Love <fx@gnu.org>
parents:
diff changeset
213
Dave Love <fx@gnu.org>
parents:
diff changeset
214 Period with a positive numeric argument, as in @kbd{C-u 3 .},
Dave Love <fx@gnu.org>
parents:
diff changeset
215 specifies the number of newest versions to keep, overriding
Dave Love <fx@gnu.org>
parents:
diff changeset
216 @code{dired-kept-versions}. A negative numeric argument overrides
Dave Love <fx@gnu.org>
parents:
diff changeset
217 @code{kept-old-versions}, using minus the value of the argument to
Dave Love <fx@gnu.org>
parents:
diff changeset
218 specify the number of oldest versions of each file to keep.
Dave Love <fx@gnu.org>
parents:
diff changeset
219
Dave Love <fx@gnu.org>
parents:
diff changeset
220 @findex dired-flag-files-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
221 @kindex % d @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
222 The @kbd{% d} command flags all files whose names match a specified
Dave Love <fx@gnu.org>
parents:
diff changeset
223 regular expression (@code{dired-flag-files-regexp}). Only the
Dave Love <fx@gnu.org>
parents:
diff changeset
224 non-directory part of the file name is used in matching. You can use
Dave Love <fx@gnu.org>
parents:
diff changeset
225 @samp{^} and @samp{$} to anchor matches. You can exclude subdirectories
Dave Love <fx@gnu.org>
parents:
diff changeset
226 by hiding them (@pxref{Hiding Subdirectories}).
Dave Love <fx@gnu.org>
parents:
diff changeset
227
Dave Love <fx@gnu.org>
parents:
diff changeset
228 @node Dired Visiting
Dave Love <fx@gnu.org>
parents:
diff changeset
229 @section Visiting Files in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
230
Dave Love <fx@gnu.org>
parents:
diff changeset
231 There are several Dired commands for visiting or examining the files
Dave Love <fx@gnu.org>
parents:
diff changeset
232 listed in the Dired buffer. All of them apply to the current line's
Dave Love <fx@gnu.org>
parents:
diff changeset
233 file; if that file is really a directory, these commands invoke Dired on
Dave Love <fx@gnu.org>
parents:
diff changeset
234 that subdirectory (making a separate Dired buffer).
Dave Love <fx@gnu.org>
parents:
diff changeset
235
Dave Love <fx@gnu.org>
parents:
diff changeset
236 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
237 @item f
Dave Love <fx@gnu.org>
parents:
diff changeset
238 @kindex f @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
239 @findex dired-find-file
Dave Love <fx@gnu.org>
parents:
diff changeset
240 Visit the file described on the current line, like typing @kbd{C-x C-f}
Dave Love <fx@gnu.org>
parents:
diff changeset
241 and supplying that file name (@code{dired-find-file}). @xref{Visiting}.
Dave Love <fx@gnu.org>
parents:
diff changeset
242
Dave Love <fx@gnu.org>
parents:
diff changeset
243 @item @key{RET}
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
244 @itemx e
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
245 @kindex RET @r{(Dired)}
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
246 @kindex e @r{(Dired)}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
247 Equivalent to @kbd{f}.
Dave Love <fx@gnu.org>
parents:
diff changeset
248
30114
50c69ce6e1b0 Describe dired-find-alternate-file.
Gerd Moellmann <gerd@gnu.org>
parents: 28126
diff changeset
249 @item a
50c69ce6e1b0 Describe dired-find-alternate-file.
Gerd Moellmann <gerd@gnu.org>
parents: 28126
diff changeset
250 @kindex a @r{(Dired)}
50c69ce6e1b0 Describe dired-find-alternate-file.
Gerd Moellmann <gerd@gnu.org>
parents: 28126
diff changeset
251 @findex dired-find-alternate-file
50c69ce6e1b0 Describe dired-find-alternate-file.
Gerd Moellmann <gerd@gnu.org>
parents: 28126
diff changeset
252 Like @kbd{f}, but replaces the contents of the Dired buffer with
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
253 that of an alternate file or directory (@code{dired-find-alternate-file}).
30114
50c69ce6e1b0 Describe dired-find-alternate-file.
Gerd Moellmann <gerd@gnu.org>
parents: 28126
diff changeset
254
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
255 @item o
Dave Love <fx@gnu.org>
parents:
diff changeset
256 @kindex o @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
257 @findex dired-find-file-other-window
Dave Love <fx@gnu.org>
parents:
diff changeset
258 Like @kbd{f}, but uses another window to display the file's buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
259 (@code{dired-find-file-other-window}). The Dired buffer remains visible
Dave Love <fx@gnu.org>
parents:
diff changeset
260 in the first window. This is like using @kbd{C-x 4 C-f} to visit the
Dave Love <fx@gnu.org>
parents:
diff changeset
261 file. @xref{Windows}.
Dave Love <fx@gnu.org>
parents:
diff changeset
262
Dave Love <fx@gnu.org>
parents:
diff changeset
263 @item C-o
Dave Love <fx@gnu.org>
parents:
diff changeset
264 @kindex C-o @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
265 @findex dired-display-file
Dave Love <fx@gnu.org>
parents:
diff changeset
266 Visit the file described on the current line, and display the buffer in
Dave Love <fx@gnu.org>
parents:
diff changeset
267 another window, but do not select that window (@code{dired-display-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
268
Dave Love <fx@gnu.org>
parents:
diff changeset
269 @item Mouse-2
Dave Love <fx@gnu.org>
parents:
diff changeset
270 @findex dired-mouse-find-file-other-window
Dave Love <fx@gnu.org>
parents:
diff changeset
271 Visit the file named by the line you click on
Dave Love <fx@gnu.org>
parents:
diff changeset
272 (@code{dired-mouse-find-file-other-window}). This uses another window
Dave Love <fx@gnu.org>
parents:
diff changeset
273 to display the file, like the @kbd{o} command.
Dave Love <fx@gnu.org>
parents:
diff changeset
274
Dave Love <fx@gnu.org>
parents:
diff changeset
275 @item v
Dave Love <fx@gnu.org>
parents:
diff changeset
276 @kindex v @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
277 @findex dired-view-file
Dave Love <fx@gnu.org>
parents:
diff changeset
278 View the file described on the current line, using @kbd{M-x view-file}
Dave Love <fx@gnu.org>
parents:
diff changeset
279 (@code{dired-view-file}).
Dave Love <fx@gnu.org>
parents:
diff changeset
280
Dave Love <fx@gnu.org>
parents:
diff changeset
281 Viewing a file is like visiting it, but is slanted toward moving around
Dave Love <fx@gnu.org>
parents:
diff changeset
282 in the file conveniently and does not allow changing the file.
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
283 @xref{Misc File Ops,View File, Miscellaneous File Operations}.
37993
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
284
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
285 @item ^
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
286 @kindex ^ @r{(Dired)}
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
287 @findex dired-up-directory
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
288 Visit the parent directory of the current directory
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
289 (@code{dired-up-directory}). This is more convenient than moving to
1ff0891cec4c Change "Dired Commands" to "Dired Navigation". Move the general
Eli Zaretskii <eliz@gnu.org>
parents: 37549
diff changeset
290 the parent directory's line and typing @kbd{f} there.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
291 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
292
Dave Love <fx@gnu.org>
parents:
diff changeset
293 @node Marks vs Flags
Dave Love <fx@gnu.org>
parents:
diff changeset
294 @section Dired Marks vs. Flags
Dave Love <fx@gnu.org>
parents:
diff changeset
295
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
296 @cindex marking many files (in Dired)
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
297 Instead of flagging a file with @samp{D}, you can @dfn{mark} the
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
298 file with some other character (usually @samp{*}). Most Dired
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
299 commands to operate on files use the files marked with @samp{*}, the
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
300 exception being @kbd{x} which deletes the flagged files.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
301
Dave Love <fx@gnu.org>
parents:
diff changeset
302 Here are some commands for marking with @samp{*}, or for unmarking or
Dave Love <fx@gnu.org>
parents:
diff changeset
303 operating on marks. (@xref{Dired Deletion}, for commands to flag and
Dave Love <fx@gnu.org>
parents:
diff changeset
304 unflag files.)
Dave Love <fx@gnu.org>
parents:
diff changeset
305
Dave Love <fx@gnu.org>
parents:
diff changeset
306 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
307 @item m
Dave Love <fx@gnu.org>
parents:
diff changeset
308 @itemx * m
Dave Love <fx@gnu.org>
parents:
diff changeset
309 @kindex m @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
310 @kindex * m @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
311 @findex dired-mark
Dave Love <fx@gnu.org>
parents:
diff changeset
312 Mark the current file with @samp{*} (@code{dired-mark}). With a numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
313 argument @var{n}, mark the next @var{n} files starting with the current
Dave Love <fx@gnu.org>
parents:
diff changeset
314 file. (If @var{n} is negative, mark the previous @minus{}@var{n}
Dave Love <fx@gnu.org>
parents:
diff changeset
315 files.)
Dave Love <fx@gnu.org>
parents:
diff changeset
316
Dave Love <fx@gnu.org>
parents:
diff changeset
317 @item * *
Dave Love <fx@gnu.org>
parents:
diff changeset
318 @kindex * * @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
319 @findex dired-mark-executables
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
320 @cindex marking executable files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
321 Mark all executable files with @samp{*}
Dave Love <fx@gnu.org>
parents:
diff changeset
322 (@code{dired-mark-executables}). With a numeric argument, unmark all
Dave Love <fx@gnu.org>
parents:
diff changeset
323 those files.
Dave Love <fx@gnu.org>
parents:
diff changeset
324
Dave Love <fx@gnu.org>
parents:
diff changeset
325 @item * @@
Dave Love <fx@gnu.org>
parents:
diff changeset
326 @kindex * @@ @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
327 @findex dired-mark-symlinks
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
328 @cindex marking symlinks (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
329 Mark all symbolic links with @samp{*} (@code{dired-mark-symlinks}).
Dave Love <fx@gnu.org>
parents:
diff changeset
330 With a numeric argument, unmark all those files.
Dave Love <fx@gnu.org>
parents:
diff changeset
331
Dave Love <fx@gnu.org>
parents:
diff changeset
332 @item * /
Dave Love <fx@gnu.org>
parents:
diff changeset
333 @kindex * / @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
334 @findex dired-mark-directories
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
335 @cindex marking subdirectories (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
336 Mark with @samp{*} all files which are actually directories, except for
Dave Love <fx@gnu.org>
parents:
diff changeset
337 @file{.} and @file{..} (@code{dired-mark-directories}). With a numeric
Dave Love <fx@gnu.org>
parents:
diff changeset
338 argument, unmark all those files.
Dave Love <fx@gnu.org>
parents:
diff changeset
339
Dave Love <fx@gnu.org>
parents:
diff changeset
340 @item * s
Dave Love <fx@gnu.org>
parents:
diff changeset
341 @kindex * s @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
342 @findex dired-mark-subdir-files
Dave Love <fx@gnu.org>
parents:
diff changeset
343 Mark all the files in the current subdirectory, aside from @file{.}
Dave Love <fx@gnu.org>
parents:
diff changeset
344 and @file{..} (@code{dired-mark-subdir-files}).
Dave Love <fx@gnu.org>
parents:
diff changeset
345
Dave Love <fx@gnu.org>
parents:
diff changeset
346 @item u
Dave Love <fx@gnu.org>
parents:
diff changeset
347 @itemx * u
Dave Love <fx@gnu.org>
parents:
diff changeset
348 @kindex u @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
349 @kindex * u @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
350 @findex dired-unmark
Dave Love <fx@gnu.org>
parents:
diff changeset
351 Remove any mark on this line (@code{dired-unmark}).
Dave Love <fx@gnu.org>
parents:
diff changeset
352
Dave Love <fx@gnu.org>
parents:
diff changeset
353 @item @key{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
354 @itemx * @key{DEL}
Dave Love <fx@gnu.org>
parents:
diff changeset
355 @kindex * DEL @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
356 @findex dired-unmark-backward
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
357 @cindex unmarking files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
358 Move point to previous line and remove any mark on that line
Dave Love <fx@gnu.org>
parents:
diff changeset
359 (@code{dired-unmark-backward}).
Dave Love <fx@gnu.org>
parents:
diff changeset
360
Dave Love <fx@gnu.org>
parents:
diff changeset
361 @item * !
Dave Love <fx@gnu.org>
parents:
diff changeset
362 @kindex * ! @r{(Dired)}
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
363 @findex dired-unmark-all-marks
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
364 Remove all marks from all the files in this Dired buffer
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
365 (@code{dired-unmark-all-marks}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
366
Dave Love <fx@gnu.org>
parents:
diff changeset
367 @item * ? @var{markchar}
Dave Love <fx@gnu.org>
parents:
diff changeset
368 @kindex * ? @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
369 @findex dired-unmark-all-files
Dave Love <fx@gnu.org>
parents:
diff changeset
370 Remove all marks that use the character @var{markchar}
Dave Love <fx@gnu.org>
parents:
diff changeset
371 (@code{dired-unmark-all-files}). The argument is a single
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
372 character---do not use @key{RET} to terminate it. See the description
36507
7f2e9facb52a Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 36477
diff changeset
373 of the @kbd{* c} command below, which lets you replace one mark
7f2e9facb52a Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 36477
diff changeset
374 character with another.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
375
Dave Love <fx@gnu.org>
parents:
diff changeset
376 With a numeric argument, this command queries about each marked file,
Dave Love <fx@gnu.org>
parents:
diff changeset
377 asking whether to remove its mark. You can answer @kbd{y} meaning yes,
Dave Love <fx@gnu.org>
parents:
diff changeset
378 @kbd{n} meaning no, or @kbd{!} to remove the marks from the remaining
Dave Love <fx@gnu.org>
parents:
diff changeset
379 files without asking about them.
Dave Love <fx@gnu.org>
parents:
diff changeset
380
Dave Love <fx@gnu.org>
parents:
diff changeset
381 @item * C-n
Dave Love <fx@gnu.org>
parents:
diff changeset
382 @findex dired-next-marked-file
Dave Love <fx@gnu.org>
parents:
diff changeset
383 @kindex * C-n @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
384 Move down to the next marked file (@code{dired-next-marked-file})
Dave Love <fx@gnu.org>
parents:
diff changeset
385 A file is ``marked'' if it has any kind of mark.
Dave Love <fx@gnu.org>
parents:
diff changeset
386
Dave Love <fx@gnu.org>
parents:
diff changeset
387 @item * C-p
Dave Love <fx@gnu.org>
parents:
diff changeset
388 @findex dired-prev-marked-file
Dave Love <fx@gnu.org>
parents:
diff changeset
389 @kindex * C-p @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
390 Move up to the previous marked file (@code{dired-prev-marked-file})
Dave Love <fx@gnu.org>
parents:
diff changeset
391
Dave Love <fx@gnu.org>
parents:
diff changeset
392 @item * t
Dave Love <fx@gnu.org>
parents:
diff changeset
393 @kindex * t @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
394 @findex dired-do-toggle
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
395 @cindex toggling marks (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
396 Toggle all marks (@code{dired-do-toggle}): files marked with @samp{*}
Dave Love <fx@gnu.org>
parents:
diff changeset
397 become unmarked, and unmarked files are marked with @samp{*}. Files
Dave Love <fx@gnu.org>
parents:
diff changeset
398 marked in any other way are not affected.
Dave Love <fx@gnu.org>
parents:
diff changeset
399
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
400 @item * c @var{old-markchar} @var{new-markchar}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
401 @kindex * c @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
402 @findex dired-change-marks
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
403 Replace all marks that use the character @var{old-markchar} with marks
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
404 that use the character @var{new-markchar} (@code{dired-change-marks}).
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
405 This command is the primary way to create or use marks other than
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
406 @samp{*} or @samp{D}. The arguments are single characters---do not use
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
407 @key{RET} to terminate them.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
408
Dave Love <fx@gnu.org>
parents:
diff changeset
409 You can use almost any character as a mark character by means of this
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
410 command, to distinguish various classes of files. If @var{old-markchar}
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
411 is a space (@samp{ }), then the command operates on all unmarked files;
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
412 if @var{new-markchar} is a space, then the command unmarks the files it
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
413 acts on.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
414
Dave Love <fx@gnu.org>
parents:
diff changeset
415 To illustrate the power of this command, here is how to put @samp{D}
Dave Love <fx@gnu.org>
parents:
diff changeset
416 flags on all the files that have no marks, while unflagging all those
Dave Love <fx@gnu.org>
parents:
diff changeset
417 that already have @samp{D} flags:
Dave Love <fx@gnu.org>
parents:
diff changeset
418
Dave Love <fx@gnu.org>
parents:
diff changeset
419 @example
Dave Love <fx@gnu.org>
parents:
diff changeset
420 * c D t * c SPC D * c t SPC
Dave Love <fx@gnu.org>
parents:
diff changeset
421 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
422
36507
7f2e9facb52a Minor cleanups.
Richard M. Stallman <rms@gnu.org>
parents: 36477
diff changeset
423 This assumes that no files were already marked with @samp{t}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
424
Dave Love <fx@gnu.org>
parents:
diff changeset
425 @item % m @var{regexp} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
426 @itemx * % @var{regexp} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
427 @findex dired-mark-files-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
428 @kindex % m @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
429 @kindex * % @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
430 Mark (with @samp{*}) all files whose names match the regular expression
Dave Love <fx@gnu.org>
parents:
diff changeset
431 @var{regexp} (@code{dired-mark-files-regexp}). This command is like
Dave Love <fx@gnu.org>
parents:
diff changeset
432 @kbd{% d}, except that it marks files with @samp{*} instead of flagging
Dave Love <fx@gnu.org>
parents:
diff changeset
433 with @samp{D}. @xref{Flagging Many Files}.
Dave Love <fx@gnu.org>
parents:
diff changeset
434
Dave Love <fx@gnu.org>
parents:
diff changeset
435 Only the non-directory part of the file name is used in matching. Use
Dave Love <fx@gnu.org>
parents:
diff changeset
436 @samp{^} and @samp{$} to anchor matches. Exclude subdirectories by
Dave Love <fx@gnu.org>
parents:
diff changeset
437 hiding them (@pxref{Hiding Subdirectories}).
Dave Love <fx@gnu.org>
parents:
diff changeset
438
Dave Love <fx@gnu.org>
parents:
diff changeset
439 @item % g @var{regexp} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
440 @findex dired-mark-files-containing-regexp
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
441 @kindex % g @r{(Dired)}
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
442 @cindex finding files containing regexp matches (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
443 Mark (with @samp{*}) all files whose @emph{contents} contain a match for
Dave Love <fx@gnu.org>
parents:
diff changeset
444 the regular expression @var{regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
445 (@code{dired-mark-files-containing-regexp}). This command is like
Dave Love <fx@gnu.org>
parents:
diff changeset
446 @kbd{% m}, except that it searches the file contents instead of the file
Dave Love <fx@gnu.org>
parents:
diff changeset
447 name.
Dave Love <fx@gnu.org>
parents:
diff changeset
448
Dave Love <fx@gnu.org>
parents:
diff changeset
449 @item C-_
Dave Love <fx@gnu.org>
parents:
diff changeset
450 @kindex C-_ @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
451 @findex dired-undo
Dave Love <fx@gnu.org>
parents:
diff changeset
452 Undo changes in the Dired buffer, such as adding or removing
37519
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
453 marks (@code{dired-undo}). @emph{This command does not revert the
38124
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
454 actual file operations, nor recover lost files!} It just undoes
37519
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
455 changes in the buffer itself. For example, if used after renaming one
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
456 or more files, @code{dired-undo} restores the original names, which
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
457 will get the Dired buffer out of sync with the actual contents of the
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
458 directory.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
459 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
460
Dave Love <fx@gnu.org>
parents:
diff changeset
461 @node Operating on Files
Dave Love <fx@gnu.org>
parents:
diff changeset
462 @section Operating on Files
Dave Love <fx@gnu.org>
parents:
diff changeset
463 @cindex operating on files in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
464
Dave Love <fx@gnu.org>
parents:
diff changeset
465 This section describes the basic Dired commands to operate on one file
Dave Love <fx@gnu.org>
parents:
diff changeset
466 or several files. All of these commands are capital letters; all of
Dave Love <fx@gnu.org>
parents:
diff changeset
467 them use the minibuffer, either to read an argument or to ask for
Dave Love <fx@gnu.org>
parents:
diff changeset
468 confirmation, before they act. All of them give you several ways to
Dave Love <fx@gnu.org>
parents:
diff changeset
469 specify which files to manipulate:
Dave Love <fx@gnu.org>
parents:
diff changeset
470
Dave Love <fx@gnu.org>
parents:
diff changeset
471 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
472 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
473 If you give the command a numeric prefix argument @var{n}, it operates
Dave Love <fx@gnu.org>
parents:
diff changeset
474 on the next @var{n} files, starting with the current file. (If @var{n}
Dave Love <fx@gnu.org>
parents:
diff changeset
475 is negative, the command operates on the @minus{}@var{n} files preceding
Dave Love <fx@gnu.org>
parents:
diff changeset
476 the current line.)
Dave Love <fx@gnu.org>
parents:
diff changeset
477
Dave Love <fx@gnu.org>
parents:
diff changeset
478 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
479 Otherwise, if some files are marked with @samp{*}, the command operates
Dave Love <fx@gnu.org>
parents:
diff changeset
480 on all those files.
Dave Love <fx@gnu.org>
parents:
diff changeset
481
Dave Love <fx@gnu.org>
parents:
diff changeset
482 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
483 Otherwise, the command operates on the current file only.
Dave Love <fx@gnu.org>
parents:
diff changeset
484 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
485
37491
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
486 @vindex dired-dwim-target
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
487 @cindex two directories (in Dired)
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
488 Commands which ask for a destination directory, such as those which
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
489 copy and rename files or create links for them, try to guess the default
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
490 target directory for the operation. Normally, they suggest the Dired
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
491 buffer's default directory, but if the variable @code{dired-dwim-target}
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
492 is non-@code{nil}, and if there is another Dired buffer displayed in the
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
493 next window, that other buffer's directory is suggested instead.
772178ae2c7e (Operating on Files): Document dired-dwim-target.
Eli Zaretskii <eliz@gnu.org>
parents: 37484
diff changeset
494
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
495 Here are the file-manipulating commands that operate on files in this
Dave Love <fx@gnu.org>
parents:
diff changeset
496 way. (Some other Dired commands, such as @kbd{!} and the @samp{%}
Dave Love <fx@gnu.org>
parents:
diff changeset
497 commands, also use these conventions to decide which files to work on.)
Dave Love <fx@gnu.org>
parents:
diff changeset
498
Dave Love <fx@gnu.org>
parents:
diff changeset
499 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
500 @findex dired-do-copy
Dave Love <fx@gnu.org>
parents:
diff changeset
501 @kindex C @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
502 @cindex copying files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
503 @item C @var{new} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
504 Copy the specified files (@code{dired-do-copy}). The argument @var{new}
Dave Love <fx@gnu.org>
parents:
diff changeset
505 is the directory to copy into, or (if copying a single file) the new
Dave Love <fx@gnu.org>
parents:
diff changeset
506 name.
Dave Love <fx@gnu.org>
parents:
diff changeset
507
Dave Love <fx@gnu.org>
parents:
diff changeset
508 @vindex dired-copy-preserve-time
Dave Love <fx@gnu.org>
parents:
diff changeset
509 If @code{dired-copy-preserve-time} is non-@code{nil}, then copying with
Dave Love <fx@gnu.org>
parents:
diff changeset
510 this command sets the modification time of the new file to be the same
Dave Love <fx@gnu.org>
parents:
diff changeset
511 as that of the old file.
Dave Love <fx@gnu.org>
parents:
diff changeset
512
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
513 @vindex dired-recursive-copies
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
514 The variable @code{dired-recursive-copies} controls whether
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
515 directories are copied recursively. The default is to not copy
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
516 recursively, which means that directories cannot be copied.
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
517
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
518 @item D
Dave Love <fx@gnu.org>
parents:
diff changeset
519 @findex dired-do-delete
Dave Love <fx@gnu.org>
parents:
diff changeset
520 @kindex D @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
521 Delete the specified files (@code{dired-do-delete}). Like the other
Dave Love <fx@gnu.org>
parents:
diff changeset
522 commands in this section, this command operates on the @emph{marked}
Dave Love <fx@gnu.org>
parents:
diff changeset
523 files, or the next @var{n} files. By contrast, @kbd{x}
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
524 (@code{dired-do-flagged-delete}) deletes all @dfn{flagged} files.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
525
Dave Love <fx@gnu.org>
parents:
diff changeset
526 @findex dired-do-rename
Dave Love <fx@gnu.org>
parents:
diff changeset
527 @kindex R @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
528 @cindex renaming files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
529 @item R @var{new} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
530 Rename the specified files (@code{dired-do-rename}). The argument
Dave Love <fx@gnu.org>
parents:
diff changeset
531 @var{new} is the directory to rename into, or (if renaming a single
Dave Love <fx@gnu.org>
parents:
diff changeset
532 file) the new name.
Dave Love <fx@gnu.org>
parents:
diff changeset
533
Dave Love <fx@gnu.org>
parents:
diff changeset
534 Dired automatically changes the visited file name of buffers associated
Dave Love <fx@gnu.org>
parents:
diff changeset
535 with renamed files so that they refer to the new names.
Dave Love <fx@gnu.org>
parents:
diff changeset
536
Dave Love <fx@gnu.org>
parents:
diff changeset
537 @findex dired-do-hardlink
Dave Love <fx@gnu.org>
parents:
diff changeset
538 @kindex H @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
539 @cindex hard links (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
540 @item H @var{new} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
541 Make hard links to the specified files (@code{dired-do-hardlink}). The
Dave Love <fx@gnu.org>
parents:
diff changeset
542 argument @var{new} is the directory to make the links in, or (if making
Dave Love <fx@gnu.org>
parents:
diff changeset
543 just one link) the name to give the link.
Dave Love <fx@gnu.org>
parents:
diff changeset
544
Dave Love <fx@gnu.org>
parents:
diff changeset
545 @findex dired-do-symlink
Dave Love <fx@gnu.org>
parents:
diff changeset
546 @kindex S @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
547 @cindex symlinks (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
548 @item S @var{new} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
549 Make symbolic links to the specified files (@code{dired-do-symlink}).
Dave Love <fx@gnu.org>
parents:
diff changeset
550 The argument @var{new} is the directory to make the links in, or (if
Dave Love <fx@gnu.org>
parents:
diff changeset
551 making just one link) the name to give the link.
Dave Love <fx@gnu.org>
parents:
diff changeset
552
Dave Love <fx@gnu.org>
parents:
diff changeset
553 @findex dired-do-chmod
Dave Love <fx@gnu.org>
parents:
diff changeset
554 @kindex M @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
555 @cindex changing file permissions (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
556 @item M @var{modespec} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
557 Change the mode (also called ``permission bits'') of the specified files
Dave Love <fx@gnu.org>
parents:
diff changeset
558 (@code{dired-do-chmod}). This uses the @code{chmod} program, so
Dave Love <fx@gnu.org>
parents:
diff changeset
559 @var{modespec} can be any argument that @code{chmod} can handle.
Dave Love <fx@gnu.org>
parents:
diff changeset
560
Dave Love <fx@gnu.org>
parents:
diff changeset
561 @findex dired-do-chgrp
Dave Love <fx@gnu.org>
parents:
diff changeset
562 @kindex G @r{(Dired)}
36263
11db0318031d Remove redundant index entries.
Eli Zaretskii <eliz@gnu.org>
parents: 36149
diff changeset
563 @cindex changing file group (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
564 @item G @var{newgroup} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
565 Change the group of the specified files to @var{newgroup}
Dave Love <fx@gnu.org>
parents:
diff changeset
566 (@code{dired-do-chgrp}).
Dave Love <fx@gnu.org>
parents:
diff changeset
567
Dave Love <fx@gnu.org>
parents:
diff changeset
568 @findex dired-do-chown
Dave Love <fx@gnu.org>
parents:
diff changeset
569 @kindex O @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
570 @cindex changing file owner (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
571 @item O @var{newowner} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
572 Change the owner of the specified files to @var{newowner}
Dave Love <fx@gnu.org>
parents:
diff changeset
573 (@code{dired-do-chown}). (On most systems, only the superuser can do
Dave Love <fx@gnu.org>
parents:
diff changeset
574 this.)
Dave Love <fx@gnu.org>
parents:
diff changeset
575
Dave Love <fx@gnu.org>
parents:
diff changeset
576 @vindex dired-chown-program
Dave Love <fx@gnu.org>
parents:
diff changeset
577 The variable @code{dired-chown-program} specifies the name of the
Dave Love <fx@gnu.org>
parents:
diff changeset
578 program to use to do the work (different systems put @code{chown} in
Dave Love <fx@gnu.org>
parents:
diff changeset
579 different places).
Dave Love <fx@gnu.org>
parents:
diff changeset
580
Dave Love <fx@gnu.org>
parents:
diff changeset
581 @findex dired-do-print
Dave Love <fx@gnu.org>
parents:
diff changeset
582 @kindex P @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
583 @cindex printing files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
584 @item P @var{command} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
585 Print the specified files (@code{dired-do-print}). You must specify the
Dave Love <fx@gnu.org>
parents:
diff changeset
586 command to print them with, but the minibuffer starts out with a
Dave Love <fx@gnu.org>
parents:
diff changeset
587 suitable guess made using the variables @code{lpr-command} and
Dave Love <fx@gnu.org>
parents:
diff changeset
588 @code{lpr-switches} (the same variables that @code{lpr-buffer} uses;
Dave Love <fx@gnu.org>
parents:
diff changeset
589 @pxref{Hardcopy}).
Dave Love <fx@gnu.org>
parents:
diff changeset
590
Dave Love <fx@gnu.org>
parents:
diff changeset
591 @findex dired-do-compress
Dave Love <fx@gnu.org>
parents:
diff changeset
592 @kindex Z @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
593 @cindex compressing files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
594 @item Z
Dave Love <fx@gnu.org>
parents:
diff changeset
595 Compress the specified files (@code{dired-do-compress}). If the file
Dave Love <fx@gnu.org>
parents:
diff changeset
596 appears to be a compressed file already, it is uncompressed instead.
Dave Love <fx@gnu.org>
parents:
diff changeset
597
Dave Love <fx@gnu.org>
parents:
diff changeset
598 @findex dired-do-load
Dave Love <fx@gnu.org>
parents:
diff changeset
599 @kindex L @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
600 @cindex loading several files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
601 @item L
Dave Love <fx@gnu.org>
parents:
diff changeset
602 Load the specified Emacs Lisp files (@code{dired-do-load}).
Dave Love <fx@gnu.org>
parents:
diff changeset
603 @xref{Lisp Libraries}.
Dave Love <fx@gnu.org>
parents:
diff changeset
604
Dave Love <fx@gnu.org>
parents:
diff changeset
605 @findex dired-do-byte-compile
Dave Love <fx@gnu.org>
parents:
diff changeset
606 @kindex B @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
607 @cindex byte-compiling several files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
608 @item B
Dave Love <fx@gnu.org>
parents:
diff changeset
609 Byte compile the specified Emacs Lisp files
Dave Love <fx@gnu.org>
parents:
diff changeset
610 (@code{dired-do-byte-compile}). @xref{Byte Compilation,, Byte
Dave Love <fx@gnu.org>
parents:
diff changeset
611 Compilation, elisp, The Emacs Lisp Reference Manual}.
Dave Love <fx@gnu.org>
parents:
diff changeset
612
Dave Love <fx@gnu.org>
parents:
diff changeset
613 @kindex A @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
614 @findex dired-do-search
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
615 @cindex search multiple files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
616 @item A @var{regexp} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
617 Search all the specified files for the regular expression @var{regexp}
Dave Love <fx@gnu.org>
parents:
diff changeset
618 (@code{dired-do-search}).
Dave Love <fx@gnu.org>
parents:
diff changeset
619
Dave Love <fx@gnu.org>
parents:
diff changeset
620 This command is a variant of @code{tags-search}. The search stops at
Dave Love <fx@gnu.org>
parents:
diff changeset
621 the first match it finds; use @kbd{M-,} to resume the search and find
Dave Love <fx@gnu.org>
parents:
diff changeset
622 the next match. @xref{Tags Search}.
Dave Love <fx@gnu.org>
parents:
diff changeset
623
Dave Love <fx@gnu.org>
parents:
diff changeset
624 @kindex Q @r{(Dired)}
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
625 @findex dired-do-query-replace-regexp
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
626 @cindex search and replace in multiple files (in Dired)
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
627 @item Q @var{regexp} @key{RET} @var{to} @key{RET}
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
628 Perform @code{query-replace-regexp} on each of the specified files,
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
629 replacing matches for @var{regexp} with the string
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
630 @var{to} (@code{dired-do-query-replace-regexp}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
631
Dave Love <fx@gnu.org>
parents:
diff changeset
632 This command is a variant of @code{tags-query-replace}. If you exit the
Dave Love <fx@gnu.org>
parents:
diff changeset
633 query replace loop, you can use @kbd{M-,} to resume the scan and replace
Dave Love <fx@gnu.org>
parents:
diff changeset
634 more matches. @xref{Tags Search}.
Dave Love <fx@gnu.org>
parents:
diff changeset
635 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
636
Dave Love <fx@gnu.org>
parents:
diff changeset
637 @kindex + @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
638 @findex dired-create-directory
Dave Love <fx@gnu.org>
parents:
diff changeset
639 One special file-operation command is @kbd{+}
Dave Love <fx@gnu.org>
parents:
diff changeset
640 (@code{dired-create-directory}). This command reads a directory name and
Dave Love <fx@gnu.org>
parents:
diff changeset
641 creates the directory if it does not already exist.
Dave Love <fx@gnu.org>
parents:
diff changeset
642
Dave Love <fx@gnu.org>
parents:
diff changeset
643 @node Shell Commands in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
644 @section Shell Commands in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
645 @cindex shell commands, Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
646
Dave Love <fx@gnu.org>
parents:
diff changeset
647 @findex dired-do-shell-command
Dave Love <fx@gnu.org>
parents:
diff changeset
648 @kindex ! @r{(Dired)}
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
649 @kindex X @r{(Dired)}
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
650 The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a shell
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
651 command string in the minibuffer and runs that shell command on all the
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
652 specified files. @kbd{X} is a synonym for @kbd{!}. You can specify the
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
653 files to operate on in the usual ways for Dired commands
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
654 (@pxref{Operating on Files}). There are two ways of applying a shell
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
655 command to multiple files:
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
656
Dave Love <fx@gnu.org>
parents:
diff changeset
657 @itemize @bullet
Dave Love <fx@gnu.org>
parents:
diff changeset
658 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
659 If you use @samp{*} in the shell command, then it runs just once, with
Dave Love <fx@gnu.org>
parents:
diff changeset
660 the list of file names substituted for the @samp{*}. The order of file
Dave Love <fx@gnu.org>
parents:
diff changeset
661 names is the order of appearance in the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
662
Dave Love <fx@gnu.org>
parents:
diff changeset
663 Thus, @kbd{! tar cf foo.tar * @key{RET}} runs @code{tar} on the entire
Dave Love <fx@gnu.org>
parents:
diff changeset
664 list of file names, putting them into one tar file @file{foo.tar}.
Dave Love <fx@gnu.org>
parents:
diff changeset
665
Dave Love <fx@gnu.org>
parents:
diff changeset
666 @item
Dave Love <fx@gnu.org>
parents:
diff changeset
667 If the command string doesn't contain @samp{*}, then it runs once
Dave Love <fx@gnu.org>
parents:
diff changeset
668 @emph{for each file}, with the file name added at the end.
Dave Love <fx@gnu.org>
parents:
diff changeset
669
Dave Love <fx@gnu.org>
parents:
diff changeset
670 For example, @kbd{! uudecode @key{RET}} runs @code{uudecode} on each
Dave Love <fx@gnu.org>
parents:
diff changeset
671 file.
Dave Love <fx@gnu.org>
parents:
diff changeset
672 @end itemize
Dave Love <fx@gnu.org>
parents:
diff changeset
673
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
674 What if you want to run the shell command once for each file, with the
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
675 file name inserted in the middle? You can use @samp{?} in the command
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
676 instead of @samp{*}. The current file name is substituted for
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
677 @samp{?}. You can use @samp{?} more than once. For instance, here is
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
678 how to uuencode each file, making the output file name by appending
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
679 @samp{.uu} to the input file name:
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
680
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
681 @example
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
682 uuencode ? ? > ?.uu
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
683 @end example
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
684
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
685 To use the file names in a more complicated fashion, you can use a
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
686 shell loop. For example, this shell command is another way to
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
687 uuencode each file:
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
688
Dave Love <fx@gnu.org>
parents:
diff changeset
689 @example
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
690 for file in *; do uuencode "$file" "$file" >"$file".uu; done
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
691 @end example
Dave Love <fx@gnu.org>
parents:
diff changeset
692
Dave Love <fx@gnu.org>
parents:
diff changeset
693 The working directory for the shell command is the top-level directory
Dave Love <fx@gnu.org>
parents:
diff changeset
694 of the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
695
Dave Love <fx@gnu.org>
parents:
diff changeset
696 The @kbd{!} command does not attempt to update the Dired buffer to show
Dave Love <fx@gnu.org>
parents:
diff changeset
697 new or modified files, because it doesn't really understand shell
Dave Love <fx@gnu.org>
parents:
diff changeset
698 commands, and does not know what files the shell command changed. Use
Dave Love <fx@gnu.org>
parents:
diff changeset
699 the @kbd{g} command to update the Dired buffer (@pxref{Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
700 Updating}).
Dave Love <fx@gnu.org>
parents:
diff changeset
701
Dave Love <fx@gnu.org>
parents:
diff changeset
702 @node Transforming File Names
Dave Love <fx@gnu.org>
parents:
diff changeset
703 @section Transforming File Names in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
704
37519
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
705 This section describes Dired commands which alter file names in a
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
706 systematic way.
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
707
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
708 Like the basic Dired file-manipulation commands (@pxref{Operating on
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
709 Files}), the commands described here operate either on the next
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
710 @var{n} files, or on all files marked with @samp{*}, or on the current
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
711 file. (To mark files, use the commands described in @ref{Marks vs
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
712 Flags}.)
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
713
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
714 All of the commands described in this section work
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
715 @emph{interactively}: they ask you to confirm the operation for each
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
716 candidate file. Thus, you can select more files than you actually
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
717 need to operate on (e.g., with a regexp that matches many files), and
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
718 then refine the selection by typing @kbd{y} or @kbd{n} when the
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
719 command prompts for confirmation.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
720
Dave Love <fx@gnu.org>
parents:
diff changeset
721 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
722 @findex dired-upcase
Dave Love <fx@gnu.org>
parents:
diff changeset
723 @kindex % u @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
724 @cindex upcase file names
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
725 @item % u
Dave Love <fx@gnu.org>
parents:
diff changeset
726 Rename each of the selected files to an upper-case name
Dave Love <fx@gnu.org>
parents:
diff changeset
727 (@code{dired-upcase}). If the old file names are @file{Foo}
Dave Love <fx@gnu.org>
parents:
diff changeset
728 and @file{bar}, the new names are @file{FOO} and @file{BAR}.
Dave Love <fx@gnu.org>
parents:
diff changeset
729
Dave Love <fx@gnu.org>
parents:
diff changeset
730 @item % l
Dave Love <fx@gnu.org>
parents:
diff changeset
731 @findex dired-downcase
Dave Love <fx@gnu.org>
parents:
diff changeset
732 @kindex % l @r{(Dired)}
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
733 @cindex downcase file names
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
734 Rename each of the selected files to a lower-case name
Dave Love <fx@gnu.org>
parents:
diff changeset
735 (@code{dired-downcase}). If the old file names are @file{Foo} and
Dave Love <fx@gnu.org>
parents:
diff changeset
736 @file{bar}, the new names are @file{foo} and @file{bar}.
Dave Love <fx@gnu.org>
parents:
diff changeset
737
Dave Love <fx@gnu.org>
parents:
diff changeset
738 @item % R @var{from} @key{RET} @var{to} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
739 @kindex % R @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
740 @findex dired-do-rename-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
741 @itemx % C @var{from} @key{RET} @var{to} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
742 @kindex % C @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
743 @findex dired-do-copy-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
744 @itemx % H @var{from} @key{RET} @var{to} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
745 @kindex % H @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
746 @findex dired-do-hardlink-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
747 @itemx % S @var{from} @key{RET} @var{to} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
748 @kindex % S @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
749 @findex dired-do-symlink-regexp
Dave Love <fx@gnu.org>
parents:
diff changeset
750 These four commands rename, copy, make hard links and make soft links,
Dave Love <fx@gnu.org>
parents:
diff changeset
751 in each case computing the new name by regular-expression substitution
Dave Love <fx@gnu.org>
parents:
diff changeset
752 from the name of the old file.
Dave Love <fx@gnu.org>
parents:
diff changeset
753 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
754
Dave Love <fx@gnu.org>
parents:
diff changeset
755 The four regular-expression substitution commands effectively perform
Dave Love <fx@gnu.org>
parents:
diff changeset
756 a search-and-replace on the selected file names in the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
757 They read two arguments: a regular expression @var{from}, and a
Dave Love <fx@gnu.org>
parents:
diff changeset
758 substitution pattern @var{to}.
Dave Love <fx@gnu.org>
parents:
diff changeset
759
Dave Love <fx@gnu.org>
parents:
diff changeset
760 The commands match each ``old'' file name against the regular
Dave Love <fx@gnu.org>
parents:
diff changeset
761 expression @var{from}, and then replace the matching part with @var{to}.
Dave Love <fx@gnu.org>
parents:
diff changeset
762 You can use @samp{\&} and @samp{\@var{digit}} in @var{to} to refer to
Dave Love <fx@gnu.org>
parents:
diff changeset
763 all or part of what the pattern matched in the old file name, as in
Dave Love <fx@gnu.org>
parents:
diff changeset
764 @code{replace-regexp} (@pxref{Regexp Replace}). If the regular expression
Dave Love <fx@gnu.org>
parents:
diff changeset
765 matches more than once in a file name, only the first match is replaced.
Dave Love <fx@gnu.org>
parents:
diff changeset
766
Dave Love <fx@gnu.org>
parents:
diff changeset
767 For example, @kbd{% R ^.*$ @key{RET} x-\& @key{RET}} renames each
Dave Love <fx@gnu.org>
parents:
diff changeset
768 selected file by prepending @samp{x-} to its name. The inverse of this,
Dave Love <fx@gnu.org>
parents:
diff changeset
769 removing @samp{x-} from the front of each file name, is also possible:
Dave Love <fx@gnu.org>
parents:
diff changeset
770 one method is @kbd{% R ^x-\(.*\)$ @key{RET} \1 @key{RET}}; another is
Dave Love <fx@gnu.org>
parents:
diff changeset
771 @kbd{% R ^x- @key{RET} @key{RET}}. (Use @samp{^} and @samp{$} to anchor
Dave Love <fx@gnu.org>
parents:
diff changeset
772 matches that should span the whole filename.)
Dave Love <fx@gnu.org>
parents:
diff changeset
773
Dave Love <fx@gnu.org>
parents:
diff changeset
774 Normally, the replacement process does not consider the files'
Dave Love <fx@gnu.org>
parents:
diff changeset
775 directory names; it operates on the file name within the directory. If
Dave Love <fx@gnu.org>
parents:
diff changeset
776 you specify a numeric argument of zero, then replacement affects the
37519
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
777 entire absolute file name including directory name. (Non-zero
1a27ed8dcefc (Marks vs Flags): Explain that dired-undo doesn't undo the file
Eli Zaretskii <eliz@gnu.org>
parents: 37491
diff changeset
778 argument specifies the number of files to operate on.)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
779
Dave Love <fx@gnu.org>
parents:
diff changeset
780 Often you will want to select the set of files to operate on using the
Dave Love <fx@gnu.org>
parents:
diff changeset
781 same @var{regexp} that you will use to operate on them. To do this,
Dave Love <fx@gnu.org>
parents:
diff changeset
782 mark those files with @kbd{% m @var{regexp} @key{RET}}, then use the
Dave Love <fx@gnu.org>
parents:
diff changeset
783 same regular expression in the command to operate on the files. To make
Dave Love <fx@gnu.org>
parents:
diff changeset
784 this easier, the @kbd{%} commands to operate on files use the last
Dave Love <fx@gnu.org>
parents:
diff changeset
785 regular expression specified in any @kbd{%} command as a default.
Dave Love <fx@gnu.org>
parents:
diff changeset
786
Dave Love <fx@gnu.org>
parents:
diff changeset
787 @node Comparison in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
788 @section File Comparison with Dired
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
789 @cindex file comparison (in Dired)
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
790 @cindex compare files (in Dired)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
791
Dave Love <fx@gnu.org>
parents:
diff changeset
792 Here are two Dired commands that compare specified files using
Dave Love <fx@gnu.org>
parents:
diff changeset
793 @code{diff}.
Dave Love <fx@gnu.org>
parents:
diff changeset
794
Dave Love <fx@gnu.org>
parents:
diff changeset
795 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
796 @item =
Dave Love <fx@gnu.org>
parents:
diff changeset
797 @findex dired-diff
Dave Love <fx@gnu.org>
parents:
diff changeset
798 @kindex = @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
799 Compare the current file (the file at point) with another file (the file
Dave Love <fx@gnu.org>
parents:
diff changeset
800 at the mark) using the @code{diff} program (@code{dired-diff}). The
Dave Love <fx@gnu.org>
parents:
diff changeset
801 file at the mark is the first argument of @code{diff}, and the file at
37549
b7c260d40c0b (Comparison in Dired): Make it clear that ``the mark'' is settable by C-SPC.
Eli Zaretskii <eliz@gnu.org>
parents: 37519
diff changeset
802 point is the second argument. Use @kbd{C-@key{SPC}}
b7c260d40c0b (Comparison in Dired): Make it clear that ``the mark'' is settable by C-SPC.
Eli Zaretskii <eliz@gnu.org>
parents: 37519
diff changeset
803 (@code{set-mark-command}) to set the mark at the first file's line
b7c260d40c0b (Comparison in Dired): Make it clear that ``the mark'' is settable by C-SPC.
Eli Zaretskii <eliz@gnu.org>
parents: 37519
diff changeset
804 (@pxref{Setting Mark}), since @code{dired-diff} ignores the files marked
b7c260d40c0b (Comparison in Dired): Make it clear that ``the mark'' is settable by C-SPC.
Eli Zaretskii <eliz@gnu.org>
parents: 37519
diff changeset
805 with the Dired's @kbd{m} command.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
806
Dave Love <fx@gnu.org>
parents:
diff changeset
807 @findex dired-backup-diff
Dave Love <fx@gnu.org>
parents:
diff changeset
808 @kindex M-= @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
809 @item M-=
Dave Love <fx@gnu.org>
parents:
diff changeset
810 Compare the current file with its latest backup file
Dave Love <fx@gnu.org>
parents:
diff changeset
811 (@code{dired-backup-diff}). If the current file is itself a backup,
Dave Love <fx@gnu.org>
parents:
diff changeset
812 compare it with the file it is a backup of; this way, you can compare
Dave Love <fx@gnu.org>
parents:
diff changeset
813 a file with any backup version of your choice.
Dave Love <fx@gnu.org>
parents:
diff changeset
814
Dave Love <fx@gnu.org>
parents:
diff changeset
815 The backup file is the first file given to @code{diff}.
Dave Love <fx@gnu.org>
parents:
diff changeset
816 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
817
Dave Love <fx@gnu.org>
parents:
diff changeset
818 @node Subdirectories in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
819 @section Subdirectories in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
820 @cindex subdirectories in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
821 @cindex expanding subdirectories in Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
822
Dave Love <fx@gnu.org>
parents:
diff changeset
823 A Dired buffer displays just one directory in the normal case;
Dave Love <fx@gnu.org>
parents:
diff changeset
824 but you can optionally include its subdirectories as well.
Dave Love <fx@gnu.org>
parents:
diff changeset
825
Dave Love <fx@gnu.org>
parents:
diff changeset
826 The simplest way to include multiple directories in one Dired buffer is
Dave Love <fx@gnu.org>
parents:
diff changeset
827 to specify the options @samp{-lR} for running @code{ls}. (If you give a
Dave Love <fx@gnu.org>
parents:
diff changeset
828 numeric argument when you run Dired, then you can specify these options
Dave Love <fx@gnu.org>
parents:
diff changeset
829 in the minibuffer.) That produces a recursive directory listing showing
Dave Love <fx@gnu.org>
parents:
diff changeset
830 all subdirectories at all levels.
Dave Love <fx@gnu.org>
parents:
diff changeset
831
Dave Love <fx@gnu.org>
parents:
diff changeset
832 But usually all the subdirectories are too many; usually you will
Dave Love <fx@gnu.org>
parents:
diff changeset
833 prefer to include specific subdirectories only. You can do this with
Dave Love <fx@gnu.org>
parents:
diff changeset
834 the @kbd{i} command:
Dave Love <fx@gnu.org>
parents:
diff changeset
835
Dave Love <fx@gnu.org>
parents:
diff changeset
836 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
837 @findex dired-maybe-insert-subdir
Dave Love <fx@gnu.org>
parents:
diff changeset
838 @kindex i @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
839 @item i
Dave Love <fx@gnu.org>
parents:
diff changeset
840 @cindex inserted subdirectory (Dired)
Dave Love <fx@gnu.org>
parents:
diff changeset
841 @cindex in-situ subdirectory (Dired)
Dave Love <fx@gnu.org>
parents:
diff changeset
842 Insert the contents of a subdirectory later in the buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
843 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
844
Dave Love <fx@gnu.org>
parents:
diff changeset
845 Use the @kbd{i} (@code{dired-maybe-insert-subdir}) command on a line
Dave Love <fx@gnu.org>
parents:
diff changeset
846 that describes a file which is a directory. It inserts the contents of
Dave Love <fx@gnu.org>
parents:
diff changeset
847 that directory into the same Dired buffer, and moves there. Inserted
Dave Love <fx@gnu.org>
parents:
diff changeset
848 subdirectory contents follow the top-level directory of the Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
849 buffer, just as they do in @samp{ls -lR} output.
Dave Love <fx@gnu.org>
parents:
diff changeset
850
Dave Love <fx@gnu.org>
parents:
diff changeset
851 If the subdirectory's contents are already present in the buffer, the
Dave Love <fx@gnu.org>
parents:
diff changeset
852 @kbd{i} command just moves to it.
Dave Love <fx@gnu.org>
parents:
diff changeset
853
Dave Love <fx@gnu.org>
parents:
diff changeset
854 In either case, @kbd{i} sets the Emacs mark before moving, so @kbd{C-u
Dave Love <fx@gnu.org>
parents:
diff changeset
855 C-@key{SPC}} takes you back to the old position in the buffer (the line
Dave Love <fx@gnu.org>
parents:
diff changeset
856 describing that subdirectory).
Dave Love <fx@gnu.org>
parents:
diff changeset
857
Dave Love <fx@gnu.org>
parents:
diff changeset
858 Use the @kbd{l} command (@code{dired-do-redisplay}) to update the
36477
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
859 subdirectory's contents. Use @kbd{C-u k} on the subdirectory header
957e48a1565e (Dired Visiting): Fix wording, suggested by Ron Ross <ronross@colba.net>.
Eli Zaretskii <eliz@gnu.org>
parents: 36263
diff changeset
860 line to delete the subdirectory. @xref{Dired Updating}.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
861
Dave Love <fx@gnu.org>
parents:
diff changeset
862 @node Subdirectory Motion
Dave Love <fx@gnu.org>
parents:
diff changeset
863 @section Moving Over Subdirectories
Dave Love <fx@gnu.org>
parents:
diff changeset
864
Dave Love <fx@gnu.org>
parents:
diff changeset
865 When a Dired buffer lists subdirectories, you can use the page motion
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
866 commands @kbd{C-x [} and @kbd{C-x ]} to move by entire directories
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
867 (@pxref{Pages}).
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
868
Dave Love <fx@gnu.org>
parents:
diff changeset
869 @cindex header line (Dired)
Dave Love <fx@gnu.org>
parents:
diff changeset
870 @cindex directory header lines
Dave Love <fx@gnu.org>
parents:
diff changeset
871 The following commands move across, up and down in the tree of
Dave Love <fx@gnu.org>
parents:
diff changeset
872 directories within one Dired buffer. They move to @dfn{directory header
Dave Love <fx@gnu.org>
parents:
diff changeset
873 lines}, which are the lines that give a directory's name, at the
Dave Love <fx@gnu.org>
parents:
diff changeset
874 beginning of the directory's contents.
Dave Love <fx@gnu.org>
parents:
diff changeset
875
Dave Love <fx@gnu.org>
parents:
diff changeset
876 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
877 @findex dired-next-subdir
Dave Love <fx@gnu.org>
parents:
diff changeset
878 @kindex C-M-n @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
879 @item C-M-n
Dave Love <fx@gnu.org>
parents:
diff changeset
880 Go to next subdirectory header line, regardless of level
Dave Love <fx@gnu.org>
parents:
diff changeset
881 (@code{dired-next-subdir}).
Dave Love <fx@gnu.org>
parents:
diff changeset
882
Dave Love <fx@gnu.org>
parents:
diff changeset
883 @findex dired-prev-subdir
Dave Love <fx@gnu.org>
parents:
diff changeset
884 @kindex C-M-p @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
885 @item C-M-p
Dave Love <fx@gnu.org>
parents:
diff changeset
886 Go to previous subdirectory header line, regardless of level
Dave Love <fx@gnu.org>
parents:
diff changeset
887 (@code{dired-prev-subdir}).
Dave Love <fx@gnu.org>
parents:
diff changeset
888
Dave Love <fx@gnu.org>
parents:
diff changeset
889 @findex dired-tree-up
Dave Love <fx@gnu.org>
parents:
diff changeset
890 @kindex C-M-u @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
891 @item C-M-u
Dave Love <fx@gnu.org>
parents:
diff changeset
892 Go up to the parent directory's header line (@code{dired-tree-up}).
Dave Love <fx@gnu.org>
parents:
diff changeset
893
Dave Love <fx@gnu.org>
parents:
diff changeset
894 @findex dired-tree-down
Dave Love <fx@gnu.org>
parents:
diff changeset
895 @kindex C-M-d @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
896 @item C-M-d
Dave Love <fx@gnu.org>
parents:
diff changeset
897 Go down in the directory tree, to the first subdirectory's header line
Dave Love <fx@gnu.org>
parents:
diff changeset
898 (@code{dired-tree-down}).
Dave Love <fx@gnu.org>
parents:
diff changeset
899
Dave Love <fx@gnu.org>
parents:
diff changeset
900 @findex dired-prev-dirline
Dave Love <fx@gnu.org>
parents:
diff changeset
901 @kindex < @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
902 @item <
Dave Love <fx@gnu.org>
parents:
diff changeset
903 Move up to the previous directory-file line (@code{dired-prev-dirline}).
Dave Love <fx@gnu.org>
parents:
diff changeset
904 These lines are the ones that describe a directory as a file in its
Dave Love <fx@gnu.org>
parents:
diff changeset
905 parent directory.
Dave Love <fx@gnu.org>
parents:
diff changeset
906
Dave Love <fx@gnu.org>
parents:
diff changeset
907 @findex dired-next-dirline
Dave Love <fx@gnu.org>
parents:
diff changeset
908 @kindex > @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
909 @item >
Dave Love <fx@gnu.org>
parents:
diff changeset
910 Move down to the next directory-file line (@code{dired-prev-dirline}).
Dave Love <fx@gnu.org>
parents:
diff changeset
911 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
912
Dave Love <fx@gnu.org>
parents:
diff changeset
913 @node Hiding Subdirectories
Dave Love <fx@gnu.org>
parents:
diff changeset
914 @section Hiding Subdirectories
Dave Love <fx@gnu.org>
parents:
diff changeset
915
Dave Love <fx@gnu.org>
parents:
diff changeset
916 @cindex hiding in Dired (Dired)
Dave Love <fx@gnu.org>
parents:
diff changeset
917 @dfn{Hiding} a subdirectory means to make it invisible, except for its
Dave Love <fx@gnu.org>
parents:
diff changeset
918 header line, via selective display (@pxref{Selective Display}).
Dave Love <fx@gnu.org>
parents:
diff changeset
919
Dave Love <fx@gnu.org>
parents:
diff changeset
920 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
921 @item $
Dave Love <fx@gnu.org>
parents:
diff changeset
922 @findex dired-hide-subdir
Dave Love <fx@gnu.org>
parents:
diff changeset
923 @kindex $ @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
924 Hide or reveal the subdirectory that point is in, and move point to the
Dave Love <fx@gnu.org>
parents:
diff changeset
925 next subdirectory (@code{dired-hide-subdir}). A numeric argument serves
Dave Love <fx@gnu.org>
parents:
diff changeset
926 as a repeat count.
Dave Love <fx@gnu.org>
parents:
diff changeset
927
Dave Love <fx@gnu.org>
parents:
diff changeset
928 @item M-$
Dave Love <fx@gnu.org>
parents:
diff changeset
929 @findex dired-hide-all
Dave Love <fx@gnu.org>
parents:
diff changeset
930 @kindex M-$ @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
931 Hide all subdirectories in this Dired buffer, leaving only their header
Dave Love <fx@gnu.org>
parents:
diff changeset
932 lines (@code{dired-hide-all}). Or, if any subdirectory is currently
Dave Love <fx@gnu.org>
parents:
diff changeset
933 hidden, make all subdirectories visible again. You can use this command
Dave Love <fx@gnu.org>
parents:
diff changeset
934 to get an overview in very deep directory trees or to move quickly to
Dave Love <fx@gnu.org>
parents:
diff changeset
935 subdirectories far away.
Dave Love <fx@gnu.org>
parents:
diff changeset
936 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
937
Dave Love <fx@gnu.org>
parents:
diff changeset
938 Ordinary Dired commands never consider files inside a hidden
Dave Love <fx@gnu.org>
parents:
diff changeset
939 subdirectory. For example, the commands to operate on marked files
Dave Love <fx@gnu.org>
parents:
diff changeset
940 ignore files in hidden directories even if they are marked. Thus you
Dave Love <fx@gnu.org>
parents:
diff changeset
941 can use hiding to temporarily exclude subdirectories from operations
Dave Love <fx@gnu.org>
parents:
diff changeset
942 without having to remove the markers.
Dave Love <fx@gnu.org>
parents:
diff changeset
943
Dave Love <fx@gnu.org>
parents:
diff changeset
944 The subdirectory hiding commands toggle; that is, they hide what was
Dave Love <fx@gnu.org>
parents:
diff changeset
945 visible, and show what was hidden.
Dave Love <fx@gnu.org>
parents:
diff changeset
946
Dave Love <fx@gnu.org>
parents:
diff changeset
947 @node Dired Updating
Dave Love <fx@gnu.org>
parents:
diff changeset
948 @section Updating the Dired Buffer
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
949 @cindex updating Dired buffer
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
950 @cindex refreshing displayed files
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
951
Dave Love <fx@gnu.org>
parents:
diff changeset
952 This section describes commands to update the Dired buffer to reflect
Dave Love <fx@gnu.org>
parents:
diff changeset
953 outside (non-Dired) changes in the directories and files, and to delete
Dave Love <fx@gnu.org>
parents:
diff changeset
954 part of the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
955
Dave Love <fx@gnu.org>
parents:
diff changeset
956 @table @kbd
Dave Love <fx@gnu.org>
parents:
diff changeset
957 @item g
Dave Love <fx@gnu.org>
parents:
diff changeset
958 Update the entire contents of the Dired buffer (@code{revert-buffer}).
Dave Love <fx@gnu.org>
parents:
diff changeset
959
Dave Love <fx@gnu.org>
parents:
diff changeset
960 @item l
Dave Love <fx@gnu.org>
parents:
diff changeset
961 Update the specified files (@code{dired-do-redisplay}).
Dave Love <fx@gnu.org>
parents:
diff changeset
962
Dave Love <fx@gnu.org>
parents:
diff changeset
963 @item k
Dave Love <fx@gnu.org>
parents:
diff changeset
964 Delete the specified @emph{file lines}---not the files, just the lines
Dave Love <fx@gnu.org>
parents:
diff changeset
965 (@code{dired-do-kill-lines}).
Dave Love <fx@gnu.org>
parents:
diff changeset
966
Dave Love <fx@gnu.org>
parents:
diff changeset
967 @item s
Dave Love <fx@gnu.org>
parents:
diff changeset
968 Toggle between alphabetical order and date/time order
Dave Love <fx@gnu.org>
parents:
diff changeset
969 (@code{dired-sort-toggle-or-edit}).
Dave Love <fx@gnu.org>
parents:
diff changeset
970
Dave Love <fx@gnu.org>
parents:
diff changeset
971 @item C-u s @var{switches} @key{RET}
Dave Love <fx@gnu.org>
parents:
diff changeset
972 Refresh the Dired buffer using @var{switches} as
Dave Love <fx@gnu.org>
parents:
diff changeset
973 @code{dired-listing-switches}.
Dave Love <fx@gnu.org>
parents:
diff changeset
974 @end table
Dave Love <fx@gnu.org>
parents:
diff changeset
975
Dave Love <fx@gnu.org>
parents:
diff changeset
976 @kindex g @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
977 @findex revert-buffer @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
978 Type @kbd{g} (@code{revert-buffer}) to update the contents of the
Dave Love <fx@gnu.org>
parents:
diff changeset
979 Dired buffer, based on changes in the files and directories listed.
Dave Love <fx@gnu.org>
parents:
diff changeset
980 This preserves all marks except for those on files that have vanished.
Dave Love <fx@gnu.org>
parents:
diff changeset
981 Hidden subdirectories are updated but remain hidden.
Dave Love <fx@gnu.org>
parents:
diff changeset
982
Dave Love <fx@gnu.org>
parents:
diff changeset
983 @kindex l @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
984 @findex dired-do-redisplay
Dave Love <fx@gnu.org>
parents:
diff changeset
985 To update only some of the files, type @kbd{l}
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
986 (@code{dired-do-redisplay}). Like the Dired file-operating commands,
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
987 this command operates on the next @var{n} files (or previous
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
988 @minus{}@var{n} files), or on the marked files if any, or on the
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
989 current file. Updating the files means reading their current status,
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
990 then updating their lines in the buffer to indicate that status.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
991
Dave Love <fx@gnu.org>
parents:
diff changeset
992 If you use @kbd{l} on a subdirectory header line, it updates the
Dave Love <fx@gnu.org>
parents:
diff changeset
993 contents of the corresponding subdirectory.
Dave Love <fx@gnu.org>
parents:
diff changeset
994
Dave Love <fx@gnu.org>
parents:
diff changeset
995 @kindex k @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
996 @findex dired-do-kill-lines
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
997 To delete the specified @emph{file lines} from the buffer---not
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
998 delete the files---type @kbd{k} (@code{dired-do-kill-lines}). Like
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
999 the file-operating commands, this command operates on the next @var{n}
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
1000 files, or on the marked files if any; but it does not operate on the
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
1001 current file as a last resort.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1002
Dave Love <fx@gnu.org>
parents:
diff changeset
1003 If you kill the line for a file that is a directory, the directory's
Dave Love <fx@gnu.org>
parents:
diff changeset
1004 contents are also deleted from the buffer. Typing @kbd{C-u k} on the
Dave Love <fx@gnu.org>
parents:
diff changeset
1005 header line for a subdirectory is another way to delete a subdirectory
Dave Love <fx@gnu.org>
parents:
diff changeset
1006 from the Dired buffer.
Dave Love <fx@gnu.org>
parents:
diff changeset
1007
Dave Love <fx@gnu.org>
parents:
diff changeset
1008 The @kbd{g} command brings back any individual lines that you have
Dave Love <fx@gnu.org>
parents:
diff changeset
1009 killed in this way, but not subdirectories---you must use @kbd{i} to
37484
0e8d5a17a47f Fix command names dired-do-flagged-delete,
Richard M. Stallman <rms@gnu.org>
parents: 36507
diff changeset
1010 reinsert a subdirectory.
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1011
Dave Love <fx@gnu.org>
parents:
diff changeset
1012 @cindex Dired sorting
Dave Love <fx@gnu.org>
parents:
diff changeset
1013 @cindex sorting Dired buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1014 @kindex s @r{(Dired)}
Dave Love <fx@gnu.org>
parents:
diff changeset
1015 @findex dired-sort-toggle-or-edit
Dave Love <fx@gnu.org>
parents:
diff changeset
1016 The files in a Dired buffers are normally listed in alphabetical order
Dave Love <fx@gnu.org>
parents:
diff changeset
1017 by file names. Alternatively Dired can sort them by date/time. The
Dave Love <fx@gnu.org>
parents:
diff changeset
1018 Dired command @kbd{s} (@code{dired-sort-toggle-or-edit}) switches
Dave Love <fx@gnu.org>
parents:
diff changeset
1019 between these two sorting modes. The mode line in a Dired buffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1020 indicates which way it is currently sorted---by name, or by date.
Dave Love <fx@gnu.org>
parents:
diff changeset
1021
Dave Love <fx@gnu.org>
parents:
diff changeset
1022 @kbd{C-u s @var{switches} @key{RET}} lets you specify a new value for
Dave Love <fx@gnu.org>
parents:
diff changeset
1023 @code{dired-listing-switches}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1024
Dave Love <fx@gnu.org>
parents:
diff changeset
1025 @node Dired and Find
Dave Love <fx@gnu.org>
parents:
diff changeset
1026 @section Dired and @code{find}
Dave Love <fx@gnu.org>
parents:
diff changeset
1027 @cindex @code{find} and Dired
Dave Love <fx@gnu.org>
parents:
diff changeset
1028
Dave Love <fx@gnu.org>
parents:
diff changeset
1029 You can select a set of files for display in a Dired buffer more
Dave Love <fx@gnu.org>
parents:
diff changeset
1030 flexibly by using the @code{find} utility to choose the files.
Dave Love <fx@gnu.org>
parents:
diff changeset
1031
Dave Love <fx@gnu.org>
parents:
diff changeset
1032 @findex find-name-dired
Dave Love <fx@gnu.org>
parents:
diff changeset
1033 To search for files with names matching a wildcard pattern use
Dave Love <fx@gnu.org>
parents:
diff changeset
1034 @kbd{M-x find-name-dired}. It reads arguments @var{directory} and
Dave Love <fx@gnu.org>
parents:
diff changeset
1035 @var{pattern}, and chooses all the files in @var{directory} or its
Dave Love <fx@gnu.org>
parents:
diff changeset
1036 subdirectories whose individual names match @var{pattern}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1037
Dave Love <fx@gnu.org>
parents:
diff changeset
1038 The files thus chosen are displayed in a Dired buffer in which the
Dave Love <fx@gnu.org>
parents:
diff changeset
1039 ordinary Dired commands are available.
Dave Love <fx@gnu.org>
parents:
diff changeset
1040
Dave Love <fx@gnu.org>
parents:
diff changeset
1041 @findex find-grep-dired
Dave Love <fx@gnu.org>
parents:
diff changeset
1042 If you want to test the contents of files, rather than their names,
Dave Love <fx@gnu.org>
parents:
diff changeset
1043 use @kbd{M-x find-grep-dired}. This command reads two minibuffer
Dave Love <fx@gnu.org>
parents:
diff changeset
1044 arguments, @var{directory} and @var{regexp}; it chooses all the files in
Dave Love <fx@gnu.org>
parents:
diff changeset
1045 @var{directory} or its subdirectories that contain a match for
Dave Love <fx@gnu.org>
parents:
diff changeset
1046 @var{regexp}. It works by running the programs @code{find} and
Dave Love <fx@gnu.org>
parents:
diff changeset
1047 @code{grep}. See also @kbd{M-x grep-find}, in @ref{Compilation}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1048 Remember to write the regular expression for @code{grep}, not for Emacs.
35056
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
1049 (An alternative method of showing files whose contents match a given
c9c43bb7f1d2 Add index entries for many Dired commands and features.
Eli Zaretskii <eliz@gnu.org>
parents: 30874
diff changeset
1050 regexp is the @kbd{% g @var{regexp}} command, see @ref{Marks vs Flags}.)
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1051
Dave Love <fx@gnu.org>
parents:
diff changeset
1052 @findex find-dired
Dave Love <fx@gnu.org>
parents:
diff changeset
1053 The most general command in this series is @kbd{M-x find-dired}, which
Dave Love <fx@gnu.org>
parents:
diff changeset
1054 lets you specify any condition that @code{find} can test. It takes two
Dave Love <fx@gnu.org>
parents:
diff changeset
1055 minibuffer arguments, @var{directory} and @var{find-args}; it runs
Dave Love <fx@gnu.org>
parents:
diff changeset
1056 @code{find} in @var{directory}, passing @var{find-args} to tell
Dave Love <fx@gnu.org>
parents:
diff changeset
1057 @code{find} what condition to test. To use this command, you need to
Dave Love <fx@gnu.org>
parents:
diff changeset
1058 know how to use @code{find}.
Dave Love <fx@gnu.org>
parents:
diff changeset
1059
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
1060 @findex locate
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
1061 @findex locate-with-filter
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
1062 @cindex file database (locate)
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
1063 @vindex locate-command
38124
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
1064 @kbd{M-x locate} provides a similar interface to the @code{locate}
38156
e46c555b62c8 Minor change.
Richard M. Stallman <rms@gnu.org>
parents: 38124
diff changeset
1065 program. @kbd{M-x locate-with-filter} is similar, but keeps only lines
38124
72ea86c1d394 Proofreading fixes from Tim Goodwin <tjg@star.le.ac.uk>.
Eli Zaretskii <eliz@gnu.org>
parents: 37993
diff changeset
1066 matching a given regular expression.
36149
a1ff91eda21c Just a short xref for dired-x.
Richard M. Stallman <rms@gnu.org>
parents: 35056
diff changeset
1067
25829
Dave Love <fx@gnu.org>
parents:
diff changeset
1068 @vindex find-ls-option
Dave Love <fx@gnu.org>
parents:
diff changeset
1069 The format of listing produced by these commands is controlled by the
Dave Love <fx@gnu.org>
parents:
diff changeset
1070 variable @code{find-ls-option}, whose default value specifies using
Dave Love <fx@gnu.org>
parents:
diff changeset
1071 options @samp{-ld} for @code{ls}. If your listings are corrupted, you
Dave Love <fx@gnu.org>
parents:
diff changeset
1072 may need to change the value of this variable.