kB schrieb:
Z.B. mit Shell-Globs. Hat aber Tücken und Untiefen.
Dateien erzeugen:
touch datei-{1,2,3,4,5}.txt
Die einzige Tücke ist, dass man da keine Variablenersetzung in der geschweiften Klammer machen kann:
Dateien erzeugen:
touch datei-{1..5}.txt Geht nicht:
max=5; touch datei-{1..$max}.txt Aber es geht auch Sachen wie:
rm datei-{1..5}{0..9}.txt umd die Dateien 10 bis 59 zu löschen, oder
Aber es geht auch Sachen wie:
rm datei-{1..59}.txt oder mit führender Null:
touch datei-{01..59}.txt mit Buchstaben:
echo datei-{j..r}.txt Der Unterschied zum [j-r]-Muster ist, dass die geschweiften Klammern zuerst aufgelöst werden, und dann wird der Befehl ausgeführt, während die eckigen Klammern ein Filematching provozieren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
touch datei-o.txt
ls datei-[j-r].txt
datei-o.txt
ls datei-{j..r}.txt
ls: Zugriff auf 'datei-j.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf 'datei-k.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf 'datei-l.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf 'datei-m.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf 'datei-n.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf 'datei-p.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf 'datei-q.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
ls: Zugriff auf 'datei-r.txt' nicht möglich: Datei oder Verzeichnis nicht gefunden
datei-o.txt
|
sprich: Wenn es um bestehende Dateien geht, sind die Backsteinklammern günstiger.
Ein touch dat-[a-z].txt würde aber eine Datei mit fancy Namen erzeugen, nicht 26 Stück. Die geschweiften Klammern lassen sich auch fernab von Dateinamen benutzen.