Hvorfor ls-kommandoen sorterer filer som foopa.png, foo.png og fooqa.png: Forklaring og ASCII-værdier

Hvorfor sorterer ls-kommandoen filerne i rækkefølgen foopa.png, foo.png og fooqa.png, når der oprettes filer med navnene foo.png, foopa.png og fooqa.png?

Sorteringen af filer med ls-kommandoen følger lexikografisk rækkefølge baseret på ASCII-værdier, hvilket resulterer i rækkefølgen foopa.png, foo.png og fooqa.png.

Hvorfor sorterer ls-kommandoen filerne i rækkefølgen foopa.png, foo.png og fooqa.png, når der oprettes filer med navnene foo.png, foopa.png og fooqa.png?

Sorteringen af filer ved brug af ls-kommandoen i Unix-baserede systemer følger en bestemt rækkefølge, som kan virke forvirrende ved første øjekast. Her er nogle grunde til, hvorfor filerne sorteres som foopa.png, foo.png og fooq.png:

  • Lexikografisk sortering: ls-kommandoen sorterer filer lexikografisk, hvilket betyder, at den sammenligner filer baseret på deres ASCII-værdier. Dette er den samme måde, som ord sorteres i en ordbog.
  • ASCII-værdier: I ASCII-tabellen kommer tegnene i følgende rækkefølge: små bogstaver (a-z), store bogstaver (A-Z), og derefter specialtegn. Derfor vil en fil, der starter med en lille bogstav, komme før en fil, der starter med en stor bogstav eller et specialtegn.
  • Detaljeret sammenligning: Når ls sammenligner filnavne, gør den det tegn for tegn. Her er en detaljeret sammenligning:
    • foopa.png vs. foo.png: Efter "foo" kommer "p" før ".", så foopa.png kommer før foo.png.
    • foo.png vs. fooq.png: Efter "foo" kommer "." før "q", så foo.png kommer før fooq.png.
    • foopa.png vs. fooq.png: Efter "foop" kommer "a" før "q", så foopa.png kommer før fooq.png.

Derfor, når du bruger ls-kommandoen til at liste filerne, vil de blive sorteret i rækkefølgen foopa.png, foo.png og fooq.png baseret på lexikografisk sortering og ASCII-værdier.