Linux Für den Stilbefehl

Linux Für den Stilbefehl

Unter Windows DOS kann ich mit diesem forBefehl meine Produktivität enorm steigern und Millionen von Dingen gleichzeitig erledigen. Unter PowerShell ist es sogar noch besser. Unter Linux habe ich Schwierigkeiten.

Wie erstelle ich eine Reihe von Softlinks zu einigen Ordnern auf einem anderen Laufwerk?

Wenn Sie ln -s 2013-02-*das tun, passiert etwas völlig Verrücktes und es werden Links in einem zufälligen Ordner erstellt.

Ich versuche also, Befehlssubstitution zu verwenden, aber beim echoersten Testen ist das Problem, dass

echo 'prepend/'`ls /drive/ -1`

Stellt nur die Zeichenfolge preprend/ dem ersten Eintrag voran. Dies sagt mir, dass die Befehlsersetzung zwar einmal mit einem remove-Befehl funktioniert hat, aber nicht so, wie ich dachte (es wird für jedes ls-Ergebnis ein einzelner Befehl erzeugt).

Ich brauche wieder eine For-Schleife. Wie mache ich "foreach $row in (ls -1) do (something)"?

Antwort1

Beginnen Sie in dem Ordner, in dem Sie Links haben möchten. So funktioniert es:

ln -s sourcefolder/2013-02-* .

Es gibt natürlich einen vollkommen sinnvollen „for“-Befehl:

for var in path/* ; do echo "prepend$var" ; done

Bearbeiten: Die allgemeine Möglichkeit, ein Programm zu verwenden, um einem anderen eine Liste von Argumenten bereitzustellen, sind Backticks: ``. Sie können also Folgendes tun:

for x in `ls -1` ; do program $x ; done

Allerdings verfügt ls über einige Zaubertricks, sodass Sie nicht -1 eingeben müssen, wenn Sie es als Eingabe für ein anderes Programm verwenden. Außerdem können Sie einfach eine Liste von Dateien mit einem *-Muster („Glob“) abrufen.

verwandte Informationen