* bug#4403: 23.1; find-dired: use "find -exec ls -ld {} +" or "find -ls" where available
@ 2009-09-11 9:09 trentbuck
2009-09-15 2:50 ` Glenn Morris
0 siblings, 1 reply; 4+ messages in thread
From: trentbuck @ 2009-09-11 9:09 UTC (permalink / raw)
To: bug-gnu-emacs
Recent versions of GNU find support the expressions
find <query> -exec ls -ld {} +
and
find <query> -ls
I believe these are also part of recent versions of the POSIX spec.
It would be great if M-x find dired RET automatically used these forms
instead of the less efficient
find <query> -exec ls -ld {} \;
that it currently uses. It would also mean that the output would line
up better, since
ls foo bar baz
will try to align the three lines, whereas
ls foo ; ls bar ; ls baz
won't.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#4403: 23.1; find-dired: use "find -exec ls -ld {} +" or "find -ls" where available
2009-09-11 9:09 bug#4403: 23.1; find-dired: use "find -exec ls -ld {} +" or "find -ls" where available trentbuck
@ 2009-09-15 2:50 ` Glenn Morris
2009-09-15 4:55 ` Trent W. Buck
0 siblings, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2009-09-15 2:50 UTC (permalink / raw)
To: trentbuck; +Cc: 4403
trentbuck@gmail.com wrote:
> Recent versions of GNU find support the expressions
>
> find <query> -exec ls -ld {} +
>
> and
>
> find <query> -ls
>
> I believe these are also part of recent versions of the POSIX spec.
>
> It would be great if M-x find dired RET automatically used these forms
You can use something like:
(setq find-ls-option
(let ((help (shell-command-to-string (format "%s --help" find-program))))
(if (string-match " -ls\\>" help)
'("-ls" . "-lids")
(if (string-match "{} \\+" help)
'("-exec ls -ld {} +" . "-ld")
'("-exec ls -ld {} \\;" . "-ld")))))
The -ls version changes the output format.
> It would also mean that the output would line up better
Surely dired already takes care of the alignment?
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#4403: 23.1; find-dired: use "find -exec ls -ld {} +" or "find -ls" where available
2009-09-15 2:50 ` Glenn Morris
@ 2009-09-15 4:55 ` Trent W. Buck
2011-04-02 20:37 ` Glenn Morris
0 siblings, 1 reply; 4+ messages in thread
From: Trent W. Buck @ 2009-09-15 4:55 UTC (permalink / raw)
To: Glenn Morris; +Cc: 4403
On Mon, Sep 14, 2009 at 10:50:04PM -0400, Glenn Morris wrote:
>> It would be great if M-x find dired RET automatically
>
> You can use something like:
>
> (setq find-ls-option
> (let ((help (shell-command-to-string (format "%s --help" find-program))))
> (if (string-match " -ls\\>" help)
> '("-ls" . "-lids")
> (if (string-match "{} \\+" help)
> '("-exec ls -ld {} +" . "-ld")
> '("-exec ls -ld {} \\;" . "-ld")))))
True. I guess I should have mentioned: I tried that a couple of years
ago, but it broke down when I tried TRAMP to a host that doesn't
support -exec {} + -- namely some FC3 and CentOS 4 servers. I suppose
that's really a separate TRAMP wishlist bug.
(The same thing happens with setting dired-listing-switches to "-Alh",
but I very rarely connect to a non-GNU server.)
> The -ls version changes the output format.
>
>> It would also mean that the output would line up better
>
> Surely dired already takes care of the alignment?
Nope. AFAIK M-x dired is aligned only because ls(1) handles
alignment. find-dired isn't aligned because ls(1) is called on files
one at a time. In some environments, GNU ls called on a single file
would align to a tab stop, so find-dired still *mostly* aligned things
nicely. Some (recent? locale-dependent?) versions didn't align to a
tab stop, so find-dired output was very hard to read, being completely
unaligned.
UPDATE: apparently I was wrong, because this is aligned normally, but
broken in find-dired:
find . \( -type d \) -exec ls -ldh {} +
(setq find-ls-option '("-exec ls -ldh {} +" . "-ldh"))
e.g. dired:
drwxr-xr-x 2 twb twb 12K 2009-07-06 13:53 SinFest
drwxr-xr-x 2 twb twb 4.0K 2009-09-01 21:55 VGCats
drwxr-xr-x 2 twb twb 12K 2009-09-15 11:39 xkcd
vs. find directly in shell:
drwxr-xr-x 2 twb twb 12K 2009-07-06 13:53 ./SinFest
drwxr-xr-x 2 twb twb 4.0K 2009-09-01 21:55 ./VGCats
drwxr-xr-x 2 twb twb 12K 2009-09-15 11:39 ./xkcd
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#4403: 23.1; find-dired: use "find -exec ls -ld {} +" or "find -ls" where available
2009-09-15 4:55 ` Trent W. Buck
@ 2011-04-02 20:37 ` Glenn Morris
0 siblings, 0 replies; 4+ messages in thread
From: Glenn Morris @ 2011-04-02 20:37 UTC (permalink / raw)
To: 4403-done
Version: 24.1
find-dired now uses `find -ls' or `find -exec +' where available.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-04-02 20:37 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-11 9:09 bug#4403: 23.1; find-dired: use "find -exec ls -ld {} +" or "find -ls" where available trentbuck
2009-09-15 2:50 ` Glenn Morris
2009-09-15 4:55 ` Trent W. Buck
2011-04-02 20:37 ` Glenn Morris
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).