ls ak{k,}
zeigt Dateien an, die mit beginnen, ak
gefolgt von einem anderen k
oder nichts.
$ touch ak akk akc
$ ls -l ak{k,}
-rw-rw-r-- 1 cas cas 0 Oct 27 10:30 ak
-rw-rw-r-- 1 cas cas 0 Oct 27 10:30 akk
Globs sind keine regulären Ausdrücke, aber sie bieten mehr als nur *
und ?
.
Wenn Sie reguläre Ausdrücke verwenden möchten, um passende Dateinamen zu finden, können Sie den folgenden find
Befehl verwenden:
$ find . -maxdepth 1 -type f -regex './ak+$'
./ak
./akk
Die -maxdepth 1
Option beschränkt die Suche nur auf das aktuelle Verzeichnis (es werden keine Unterverzeichnisse durchsucht).
Wenn Sie Suchanfragen ohne Berücksichtigung der Groß- und Kleinschreibung wünschen, verwenden Sie -iregex
statt -regex
.
Es gibt zahlreiche Methoden zur Verwendung der Dateien, die find
in anderen Befehlen gefunden wurden. Zum Beispiel:
find . -maxdepth 1 -type f -regex './ak+$' -ls
find . -maxdepth 1 -type f -regex './ak+$' -exec ls -ld {} +
find . -maxdepth 1 -type f -regex './ak+$' -print0 | xargs -0r ls -ld
ls -ld $(find . -maxdepth 1 -type f -regex './ak+$')
Das letzte Beispiel ist anfällig für verschiedene Fehlermodi, darunter 1. Nichtbewältigung von Leerzeichen usw. in Dateinamen, 2. Begrenzung der Befehlszeilenlänge. nicht empfohlen.