Kann ich alle Dateien in einem Verzeichnis von "1", "2", ..., "9", "10", "11", ..., "20", "21", ... `ls`?

Kann ich alle Dateien in einem Verzeichnis von "1", "2", ..., "9", "10", "11", ..., "20", "21", ... `ls`?

Ich habe ein Verzeichnis mit Dateien namens "1", "2", ..., "9", "10", "11", ..., "20", "21", ... darin.

Kann ich sie in der Reihenfolge „1“, „2“, …, „9“, „10“, „11“, …, „20“, „21“, … auflisten?

Ich habe es versucht ls -ls. Die Dateien werden nicht auf diese Weise aufgelistet, sondern „1“, „10“, „11“, ..., „19“, „2“, „20“, „21“, .... Ich denke, eine solche Funktion kann manchmal hilfreich sein.

Antwort1

Bei GNU ls(wie es auf den meisten Linux-Distributionen zu finden ist) können Sie verwenden ls -v, wobei -vvon der manSeite

 -v     natural sort of (version) numbers within text

Antwort2

GNU ls -vwurde bereits erwähnt, aber für andere Befehle zshkönnen Sie, falls Ihre Shell ist, die Reihenfolge beeinflussen, in der Platzhalter mit Globbing-Qualifizierern erweitert werden.

Zum Beispiel:

printf '%s\n' *(om)

Würde die Dateien nach mÄnderungszeitpunkt sortiert auflisten (von der neuesten zur ältesten), *(Om)oder die Sortierreihenfolge umkehren (von der ältesten zur neuesten).

*(n)würde die Dateien numerisch sortieren. Wenn Ihr System also lsnicht GNU ist ls, können Sie trotzdem Folgendes tun:

ls -fdl -- *(n)

Um die Liste numerisch zu sortieren.

verwandte Informationen