Christian Seiler: Ich bin wohl zu blöd

Beitrag lesen

Augenscheinlich liefert [--f]* ( also [-f]* reicht)nur die Directories, aber das war nicht Frage.

ls -la [--0]*    liefert NICHT das, was in der man-Page drinsteht.

Dort steht, dass Bindestrich, Punkt und (Ziffernzeichen für 0) gefiltert werden würden.
Stimmt aber nicht.

[--0] matcht '-', '.' und '0', weil:

- ist in ASCII und kompatiblen Zeichenkodierungen auf Position 45
  . ist in ASCII und kompatiblen Zeichenkodierungen auf Position 46
  0 ist in ASCII und kompatiblen Zeichenkodierungen auf Position 48

[Auf Position 47 ist der '/', aber nachdem der in Dateinamen selbst nicht auftauchen kann, spielt der hier keine Rolle.]

Beispiel in folgendem Verzeichnis:

insgesamt 6
drwxr-xr-x  2 christian users  224 28. Nov 23:12 .
drwxr-xr-x 63 christian users 6264 28. Nov 16:55 ..
-rw-r--r--  1 christian users    0 28. Nov 23:10 0alpha
-rw-r--r--  1 christian users    0 28. Nov 23:10 1beta
-rw-r--r--  1 christian users    0 28. Nov 23:12 -dateimitb
-rw-r--r--  1 christian users    0 28. Nov 23:10 .foobar
-rw-r--r--  1 christian users    0 28. Nov 23:10 funktion
-rw-r--r--  1 christian users    0 28. Nov 23:10 Ggamma
-rw-r--r--  1 christian users    0 28. Nov 23:10 zdatei

Wenn man den Pattern verwendet, ergibt das:

christian@cobalt ~/tmp/glob-test $ ls -lad -- [--0]*
-rw-r--r-- 1 christian users 0 28. Nov 23:10 0alpha
-rw-r--r-- 1 christian users 0 28. Nov 23:12 -dateimitb

Kommentare:

1. Folgendes ist irrelevant für's Matching selbst:

1a. -d sort dafür, dass in Verzeichnisse nicht "hineingegangen" wird, sondern dass diese wie Dateien angezeigt werden. Mich interessiert ja nur, ob es matcht, nicht, ob da

1b. -- sorgt dafür, dass dahinter durchaus Dateien mit '-' anfangen dürfen, ohne, dass ls versucht, das als Parameter zu interpretieren.

2. Die Dateien '-dateimitb' und '0alpha' werden wie erwartet gematcht. Die Datei '.foobar' und die Verzeichnisse '.' und '..' nicht, was aber auch der Manpage entspricht:

| If a filename starts with a `.', this character must be matched
| explicitly.

Wenden wir nun Deinen Ausdruck [--f] an:

christian@cobalt ~/tmp/glob-test $ ls -lad -- [--f]*
-rw-r--r-- 1 christian users 0 28. Nov 23:10 0alpha
-rw-r--r-- 1 christian users 0 28. Nov 23:10 1beta
-rw-r--r-- 1 christian users 0 28. Nov 23:12 -dateimitb
-rw-r--r-- 1 christian users 0 28. Nov 23:10 funktion

Kommentare:

- liegt auf ASCII-Position 45
 f liegt auf ASCII-Position 102

Das heißt: Alle Zeichen, die zwischen 45 und 102 liegen (einschließlich der Grenzen), werden von dieser Range gematcht. Damit fallen '0alpha', '1beta', '-dateimitb' und 'funktion' unter diese Kategorie. '.foobar', '.' und '..' wieder nicht aus dem gleichen Grund wie oben und 'zdatei' auch nicht, weil 'z' auf der ASCII-Position 122 liegt, was größer als 102 ist.

Die Bash verhält sich also vollkommen korrekt in Bezug auf die Handbuchseite.

Könntest Du daher bitte aufhören, JEDES MAL gleich die Behauptung aufzustellen, irgendwelche Software würde sich seltsam verhalten, wenn Du offensichtlich nicht gewillt bist, Dir die Manpage in RUHE anzusehen und Dir in RUHE zu überlegen, was da eigentlich genau steht?

0 86

Server

Marco
  • webserver
  1. 0
    marco
    1. 0
      Marco
      1. 0
        Tom
        1. 0
          Marco
          1. 0
            Der Martin
            1. 0
              Marco
              1. 0
                Tom
            2. 0
              Tom
          2. 0
            Tom
            1. 0
              marco
              1. 0
                Tom
                1. 0
                  marco
                  1. 0
                    MArco
                    1. 0
                      Tom
                      1. 0
                        marco
                        1. 0
                          Tom
                          1. 0
                            marco
                            1. 0
                              Tom
                              1. 0
                                marco
                                1. 0
                                  Tom
                                  1. 0
                                    Tom
                                    1. 0
                                      Tom
                                      1. 0
                                        Sven Rautenberg
                                        1. 0
                                          Tom
                                      2. 0

                                        DNS ist falsch

                                        Tom
                                        1. 0
                                          Marco
                                          1. 0
                                            marco
                                            1. 0
                                              Tom
                                            2. 0
                                              Tom
                                              1. 0
                                                Marco
                                                1. 0
                                                  Tom
                                                  1. 0
                                                    marco
                                                    1. 0
                                                      Tom
                                                      1. 0
                                                        marco
                                                        1. 0
                                                          Tom
                                                          1. 0
                                                            marco
                                                            1. 0

                                                              Der Witz war gut

                                                              Tom
                                                              • menschelei
                                                              1. 0
                                                                marco
                                                                1. 0
                                                                  marco
                                                                2. 0

                                                                  Apache Einrichtung

                                                                  Tom
                                                                  • webserver
                                                                  1. 0
                                                                    Tom
                                                                    1. 0
                                                                      Marco
                                                                      1. 0
                                                                        Dennis
                                                                        1. 0
                                                                          Tom
                                                                          1. 0
                                                                            Dennis
                                                              2. 0

                                                                Quizfragen

                                                                Vinzenz Mai
                                                                1. 0
                                                                  Tom
                                                        2. 0

                                                          VHOSTS prüfen

                                                          Tom
                                                          1. 0
                                                            marco
                                          2. 0
                                            Tom
                                            1. 0
                                              Marco
                                              1. 0
                                                Tom
                                                1. 0
                                                  marco
                                                  1. 0
                                                    Tom
                                                    1. 0
                                                      Marco
                                                  2. 0
                                                    Tom
                                                    1. 0
                                                      marco
                                                      1. 0
                                                        marco
                                    2. 0
                                      Marco
                                      1. 0

                                        LÖSUNG?

                                        Tom
                                    3. 0
                                      Sven Rautenberg
                                      1. 0
                                        Tom
                                        1. 0
                                          Sven Rautenberg
                                          1. 0
                                            Tom
                                          2. 0

                                            fnmatch und die Bedeutung der Metazeichen

                                            Tom
                                      2. 0
                                        Dennis
                                        1. 0
                                          Sven Rautenberg
                                          1. 0
                                            Christian Seiler
                                            1. 0

                                              Server Apache und fnmatch()

                                              Tom
                                              1. 0
                                                Christian Seiler
                                                1. 0
                                                  Tom
                                                  1. 0
                                                    Christian Seiler
                                                    1. 0

                                                      Danke

                                                      Tom
                                                      • menschelei
                                                      1. 0

                                                        Ich bin wohl zu blöd

                                                        Tom
                                                        1. 0
                                                          Christian Seiler
                                          2. 0
                                            Tom
                                  2. 0
                                    Marco
                                    1. 0
                                      Tom
                                      1. 0
                                        Sven Rautenberg
                                        1. 0
                                          Tom
                                          1. 0
                                            Marco
                                            1. 0
                                              Dennis
                  2. 0
                    Tom
                    1. 0
                      marco
                      1. 0
                        Tom