GNU bug report logs -
#69261
'ls' : --ignore does not apply on FILEs selection
Previous Next
Reported by: Mathias MICHEL <matm <at> gmx.fr>
Date: Mon, 19 Feb 2024 03:19:01 UTC
Severity: normal
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sun, 18 Feb 2024 22:45:00 -0800
with message-id <1e3795ac-d6cd-4b88-ab4b-9dcf6e8d595b <at> cs.ucla.edu>
and subject line Re: bug#69261: 'ls' : --ignore does not apply on FILEs selection
has caused the debbugs.gnu.org bug report #69261,
regarding 'ls' : --ignore does not apply on FILEs selection
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
69261: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69261
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Hello,
Is it expected that --ignore arg does not apply on globbed FILE ?
My goal is to avoid using grep or complex find args:
> ~/.ssh :: ls id_ed* | grep -v
"\.pub$"id_ed25519id_ed25519.localid_ed25519_ori
> ~/.ssh:: find . '!' -name '*.pub' -name
"id_ed*"./id_ed25519_ori./id_ed25519.local./id_ed25519
I tried -I (--ignore) and --hide :
> ~/.ssh:: ls -I"*.pub" id_ed* id_ed25519 id_ed25519.local
id_ed25519.local.pub id_ed25519_ori
id_ed25519_ori.pub id_ed25519.pub> ~/.ssh:: ls --hide "*.pub"
id_ed* id_ed25519 id_ed25519.local id_ed25519.local.pub
id_ed25519_ori id_ed25519_ori.pub id_ed25519.pub
Since help text says for both options is : do not list implied entries
matching shell PATTERN
I would expect it to occur after building the initial listing.
When I remove the globbing pattern, it seems to work as expected:
~/.ssh:: ls -I "*.pub" ./config id_ed25519 id_ed25519.local
id_ed25519_ori id_rsa.local known_hosts known_hosts.old~/.ssh:: ls
-I "*.pub"config id_ed25519 id_ed25519.local id_ed25519_ori
id_rsa.local known_hosts known_hosts.old
Man page says nothing about conflicts with file globbing. My view is
obviously that this is a miss, what are yours ?
Thanks for your feedback--
Mathias M
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
On 2024-02-18 14:07, Mathias MICHEL via GNU coreutils Bug Reports wrote:
> Is it expected that --ignore arg does not apply on globbed FILE ?
Yes. --ignore is about what 'ls' finds in directories, not about
command-line arguments.
> My goal is to avoid using grep or complex find args:
>> > ~/.ssh :: ls id_ed* | grep -v "\.pub$" > id_ed25519 id_ed25519.local id_ed25519_ori
Try this:
ls --hide='[^i]*' --hide='i[^d]*' --hide='id[^_]*' --hide='id_[^e]*'
--hide='id_e[^d]*' --hide='*.pub'
Admittedly ugly, but does the job.
This bug report was last modified 1 year and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.