ls: Gewichtung der Parameter

08/08/2014 - 13:52 von Ben Dietze | Report spam
Hallöle,

eben fiel mir auf, dass mein ls 1) unter Umstànden offenbar den
Parameter '-ignore=PATTERN' ignoriert. Ist das so gewollt oder mache ich
hier etwas falsch:

$ ls
file1.abc file2.def file3.bef file4.agf
$ ls --ignore=*.agf
file1.abc file2.def file3.bef
$ ls *.[ab]?[cf]
file1.abc file3.bef file4.agf
$ ls --ignore=*.agf *.[ab]?[cf]
file1.abc file3.bef file4.agf

Im letzten Fall dürfte "file4.agf" doch nicht angezeigt werden, da über
-ignore explizit ausgeschlossen. Hat das anzuzeigende Dateipattern am
Schluss eine so hohe Gewichtung, dass das -ignore damit überschrieben
wird? Immerhin gibt es ja noch den Parameter "-hide=PATTERN", welcher
das gleiche tut, aber durch -A wiederum deaktiviert werden kann. Für
-ignore soll das explizit nicht gelten.

Diverse Quoting- und Escape-Versuche haben übrigens nichts geàndert.


Steh grad auf dem Schlauch
Ben

1) Linux x86-64, GNU coreutils 8.21; GNU bash, Version 4.2.45(1)-release
 

Lesen sie die antworten

#1 Herbert Pophal
08/08/2014 - 14:58 | Warnen spam
On 08.08.2014 13:52, Ben Dietze wrote:
Hallöle,

eben fiel mir auf, dass mein ls 1) unter Umstànden offenbar den
Parameter '-ignore=PATTERN' ignoriert. Ist das so gewollt oder mache ich
hier etwas falsch:

$ ls
file1.abc file2.def file3.bef file4.agf
$ ls --ignore=*.agf
file1.abc file2.def file3.bef
$ ls *.[ab]?[cf]
file1.abc file3.bef file4.agf
$ ls --ignore=*.agf *.[ab]?[cf]
file1.abc file3.bef file4.agf

Im letzten Fall dürfte "file4.agf" doch nicht angezeigt werden, da über
-ignore explizit ausgeschlossen. Hat das anzuzeigende Dateipattern am
Schluss eine so hohe Gewichtung, dass das -ignore damit überschrieben
wird? Immerhin gibt es ja noch den Parameter "-hide=PATTERN", welcher
das gleiche tut, aber durch -A wiederum deaktiviert werden kann. Für
-ignore soll das explizit nicht gelten.




man ls:

-I, --ignore=PATTERN
do not list **implied entries** matching shell PATTERN

Vermutung:
Deine entries sind nicht "implied", du hast sie **explizit** übers
pattern angefordert.
"implied" sind die ersten beiden Aufrufe.


Herbert

Ähnliche fragen