
Ich kann 5 Dateien mit folgendem Befehl irgendwohin verschieben:
$ mv my-{1..5}.jpg /path/to/dir/
Wie kann ich problemlos eine fünffache Kopie einer Datei erstellen?
# doesn't work
$ cp my.jpg my-{1..5}.jpg
Ist es möglich, kein zu verwenden for loop
?
Antwort1
Versuche dies
for f in {1..5}; do cp my.jpg my$f.jpg; done
(habe kein Bash hier, um es selbst zu versuchen)
Antwort2
So geht das ohne for
Schleife und ohne die Risiken der Verwendung von eval
:
printf '%s\n' {1..5} | xargs -I {} cp my.jpg my-{}.jpg
Tatsächlich handelt es sich immer noch um eine Schleife.
Antwort3
Versuchen tee
:
tee <my.jpg >/dev/null my-{1..5}.jpg
Oder parallel
:
parallel cp my.jpg ::: my-{1..5}.jpg
Antwort4
Sie können es ohne eine Schleife tun, indem Sie tee
eine {}
Klammererweiterung verwenden.
BEARBEITEN:(geändert gemäßDennis WilliamsonsKommentar:
Für eine Datei mit dem Namen „my-.jpg“
pre="my-"; suf=".jpg"
<"$pre$suf" tee "$pre"{1..5}"$suf" >/dev/null