mittels geschweifter Klammern mehrere dateien gleichzeitigt erstellen?

... komplette Frage anzeigen

4 Antworten

Hallo

touch {a,c}.txt oder touch {a...c}

Wenn die Zahl der zu erstellenden Dateien sehr groß ist, dann kann es mit dem Kommando

for i in {1..8}; do touch $i; done

zu Problemen wegen der Inodes kommen, da wäre es dann so besser:

printf '%s ' {001..100} | xargs touch

Dabei ist die

001

der Wert mit dem

begonnen

werden sollund die

100

der höchste Wert, also die Anzahl bis

wohin

es gehen soll.

Ersetze einfach die Zahlen 001 und 100 durch eigene Werte. So kannst Du auch Millionen Dateien in einem Rutsch erstellen.

Ein anderer Weg, den ich bei stackexchange gefunden habe, wäre:

seq 10 | xargs touch

um zum Beispiel 10 Dateien aufsteigend zu erstellen.

Linuxhase

Kommentar von maxmeer
04.01.2017, 22:12

Bei dieser Lösung stellt sich mir die Frage (die bei der wiedergefundenen Lösung kein Problem ist): Wie hänge ich hier den gleichbleibenden Rest des Namens an? Eigentlich reicht ja eine Lösung :-) mm

0

Hallo

mittels geschweifter Klammern mehrere dateien gleichzeitigt erstellen?

Keine Ahnung was Du mit den Klammern willst, aber mehrere Dateien erstellen ist doch einfach:

touch dat1 dat2 dat3 file1 file2 file 3 "Neue Datei 1" "Neue Datei 2" "usw."

Einst wusste ich wie mittels geschweifter Klammern mehrer Dateien mit einem Befehl erstellt wurden.

Du meinst doch nicht etwa eine Automatisierung also aufsteigend nummerierte Dateien?:

for i in $(echo 1 2 3 4 5 6 7 8; do touch ${i}; done

Linuxhase

Kommentar von barnim
24.11.2016, 08:25

Dein letztes Beispiel ist irgendwie wat krumm (Klammer-zu fehlt u.A.).

for i in {1..8}; do touch $i; done

waere dann funktionell ;)

P.S.: {1..8} kann man entsprechend mit {a..c} ersetzen.

2

warum sollte

touch {a,b}.txt 

mit der Standard-Shell von Linux (bash)  nicht funktionieren ?
Ob diese Möglichkeit mit allen Shells enthalten ist, kann ich nicht sagen.
Mit der bash, der csh, der ksh und der zsh geht es.

Welche Fehler werden bei dir gemeldet? Hast du in dem betreffenden Directory auch die nötigen Rechte?

Kommentar von maxmeer
05.12.2016, 15:22

Linuxhase's Antwort war was ich gesucht habe. Ich hatte es vergessen das ZWEI Punkte das Zauberwort sind {a..d}

0

Einfach "touch datei1 datei2 datei3" o. ä. eingeben, ohne irgendwelche Klammerung. Dann funktioniert es.

Kommentar von maxmeer
05.12.2016, 15:28

keine Frage, aber mir ging's ja die "Zauberformel" und Linuxhase hat sie gewusst: ZWEI Punkte

touch {a..c}.txt # legt a.txt, b.txt. c.txt an 
touch {a..f}{1..9}.xxx 

und das Wunder wirkt. a1.xxx bis f9.xxx sind fertig

0

Was möchtest Du wissen?