|
|
- Viele Befehle können mehrere Dateien auf einmal verarbeiten
- Dateien einzeln aufzählen wird schnell nervig
Ganz schlecht:
~ $ ls
witzig1.jpg witzig2.jpg witzig3.jpg
~ $ chmod a+r witzig1.jpg
~ $ chmod a+r witzig2.jpg
~ $ chmod a+r witzig3.jpg
~ $
|
|
|
|
|
|
|
|
|
Besser:
~ $ ls
witzig1.jpg witzig2.jpg witzig3.jpg
~ $ chmod a+r witzig1.jpg witzig2.jpg witzig3.jpg
~ $
|
|
|
|
|
|
|
|
|
Super:
~ $ ls
witzig1.jpg witzig2.jpg witzig3.jpg
~ $ chmod a+r *.jpg
~ $
|
|
|
|
|
|
|
|
~ $ ls
a1.jpg a10.jpg a11.jpg a2.jpg a3.jpg a4.jpg
~ $
|
|
- "*"
Beliebig viele beliebige Zeichen
|
~ $ ls a1*.jpg
a1.jpg a10.jpg a11.jpg
~ $
|
|
|
- "?"
Ein beliebiges Zeichen
|
~ $ ls a1?.jpg
a10.jpg a11.jpg
~ $
|
|
|
- "[abc]"
Ein Zeichen aus der Menge
|
~ $ ls a[245].jpg
a2.jpg a4.jpg
~ $
|
|
|
|
|
|
|
|
|
|
Ohne Match wird das Argument unverändert übernommen.
- Match
gefundene Dateien werden übernommen
|
~ $ echo a1*.jpg
a1.jpg a10.jpg a11.jpg
~ $
|
|
|
- kein Match
Argument bleibt unverändert
|
~ $ echo b1*.jpg
b1*.jpg
~ $
|
|
|
Anmerkung: Dieses Verhalten lässt sich mit der
Shelloption nullglob beeinflussen.
|
|
|
|
|
|
- Dateien, die mit "." beginnen sind versteckt
- Shell Globbing ignoriert die "Dotfiles"
- Punkt muss explizit genannt werden
~ $ echo .*
. .. .bash_history .bash_profile .bashrc
~ $
|
|
Achtung bei ".*":
Der aktuelle Ordner (".")
sowie der darüberliegende ("..") matchen auch!
rm -r .* löscht das gesamte
Verzeichnis und das darüberliegende gleich mit.
|
|
|
|
|
|
~ $ ls
a1.jpg a10.jpg a11.jpg a2.jpg a3.jpg a4.jpg
~ $
|
|
- "!(pattern)"
Pattern ausschließen
|
~ $ echo !(a2).jpg
a10.jpg a11.jpg a1.jpg a3.jpg a4.jpg
~ $
|
|
|
- "!(pattern|pattern)"
mehrere Patterns ausschließen
|
~ $ echo a!(1*|2).jpg
a3.jpg a4.jpg
~ $
|
|
|
- ".!(|.)"
Dotfiles ohne "." und ".."
|
~ $ echo .!(|.)
.bash_history .bash_profile .bashrc
~ $
|
|
|
Anmerkung: Für Extended Globbing muss die Shelloption extglob
eingeschaltet sein.
|
|
|
|
|
|
|
Brace Expansion hat starke Ähnlichkeit mit Globbing aber die angegebenen
Dateinamen müssen nicht existieren.
~ $ ls
a1.jpg a10.jpg a11.jpg a2.jpg a3.jpg a4.jpg
~ $
|
|
- "{name1,name2}"
Alternativen aufzählen
|
~ $ echo a{2,10}.jpg
a2.jpg a10.jpg
~ $
|
|
|
|
|
|
|