Ist es möglich, Brace Expansion und Globbing zusammen zu verwenden?

563
Ziggy

Angenommen, ich wollte die .ssh/authorized_keysDatei in das /homeVerzeichnis jedes Benutzers kopieren /tmp(aus welchem ​​Grund auch immer). Ich dachte, ich könnte Globbing und Brace Expansion verwenden, um dies schnell zu machen, aber ich bekam Probleme. Ich habe versucht, etwas key_for_{*}zu verwenden, um für jeden Benutzer einen anderen Dateinamen zu erhalten. Mein Gedanke war, dass ich alles so kopieren könnte,

sudo cp */.ssh/authorized_keys /tmp/key_for_{*} 

Ich habe erwartet /tmp, Dateien wie /tmp/key_for_alice, usw. zu haben /tmp/key_for_james... aber so ist es nicht geschehen.

Beim Googeln habe ich viele Beispiele für die Erweiterung der Zahnspange gefunden, aber keine, die diese Frage ansprach. Gibt es etwas, was ich wissen sollte

Vielen Dank!

1

1 Antwort auf die Frage

3
Ignacio Vazquez-Abrams

Das ist keine Klammererweiterung. Das ist nur ... ein Sternchen in Klammern. Sie müssen dazu eine for-Schleife verwenden.

for user in * do cp "$user"/.ssh/authorized_keys /tmp/key_for_"$user" done