ZSH: Globulieren der ersten N Dateien unter einem Pfad in lexikografischer Reihenfolge

7

Ich habe mich gefragt, ob es eine Möglichkeit gibt, die ersten N Dateien unter einem bestimmten Verzeichnis in zsh anzugeben.

Ich interessiere mich für Lösungen für die rekursive Aufzählung (dh jede Datei, die rekursiv unter einem Pfad für die Aufzählung berücksichtigt wird) und nicht rekursiv (nur die Dateien, die ausschließlich unter einem bestimmten Ordner liegen, werden berücksichtigt).

Vielen Dank!

Amelio Vazquez-Reina
quelle

Antworten:

11

Es ist zsh, also gibt es dafür tatsächlich ein Glob-Qualifikationsmerkmal .

echo *([1,42])         # The first 42 files in the current directory, in lexicographic order
echo **/*([1,42])      # The first 42 files in a depth-first traversal
echo **/*(od[1,42])    # The first 42 files in a breadth-first traversal

Andere nützliche Qualifikationsmerkmale, z. B. der folgende Ausdruck, umfassen Punktdateien ( D), beschränken sich auf reguläre Dateien ( .) und symbolische Links ( -) auf reguläre Dateien und werden zu einer leeren Liste erweitert, wenn keine Übereinstimmung vorliegt ( N):

echo *(-.DN[1,42])
Gilles 'SO - hör auf böse zu sein'
quelle