Es ist auf einem Dotfile
Mein Verzeichnis enthält:
$ ls -A
.dotfile20091021 file20091020 file20091021
Ich möchte ALLE Dateien auflisten, deren Name 20091021 enthält.
Wenn ich renne:
$ ls -A *20091021*
file20091021
Wenn ich renne:
$ ls -A .*20091021*
.dotfile20091021
Kann ich beide Dateien mit einem einzigen "ls" -Befehl abrufen?
command-line
unix
ls
Dogbane
quelle
quelle
Antworten:
Laut diesem Link gibt es eine Bash-Option für Glob Dot-Dateien:
Wenn Sie bash verwenden, müssen Sie danach nur noch Folgendes tun:
(Kann hier nicht getestet werden)
quelle
quelle
Sie können es einfach tun
(Halten Sie sich strikt an Ihre Anfrage, dass Sie dies in einem einzigen tun möchten
ls
)quelle
Sie verlassen sich auf die von Ihnen verwendete Shell, um die Glob-Erweiterung durchzuführen.
.. könnte Ihnen helfen, dies auf tragbare Weise zu klären.
Zum Beispiel:
Siehe, die Kraft der Pfeifen :) Erweitern ist eine Übung für den Leser. shopt ist nicht portierbar und funktioniert auf Systemen, die eine ausschließlich POSIX-Shell verwenden (z. B. dash), nicht mehr. Es ist besser, es einfach und tragbar zu schreiben. Oder Sie laden Ihr bewährtes Skript auf eine Box, auf der eine andere Distribution läuft, und sehen zu, wie es schrecklich kaputt geht.
Hinweis: Jede Shell führt eine Glob-Erweiterung auf ihre eigene Weise durch, die weitgehend durch ihre Lizenz bestimmt wird. Bitte, bitte, bitte vermeide Bashismen. Ubuntu gab Zehntausende von Dollar aus, um die in seinem Produkt enthaltenen Produkte loszuwerden.
quelle