Wie automatisiere ich das Entfernen eines Symlinks und das Hinzufügen eines neuen?

Wie automatisiere ich das Entfernen eines Symlinks und das Hinzufügen eines neuen?

Im Grunde möchte ich einen schnellen Befehlssatz erstellen, den ich in das Terminal eingeben und dann Folgendes ausführen lassen kann:

cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink

Ich arbeite für ein Unternehmen, dessen Software an einem zentralen Ort untergebracht ist und Symlinks verwendet, um Probleme zu umgehen, die durch die Arbeit aus einem Subversion-Repo-Zweig (oder was auch immer) entstehen, da die Software zum Ausführen auf bestimmte Pfade angewiesen ist. Mein Dilemma besteht darin, dass ich regelmäßig (mehrmals täglich) zwischen verschiedenen Zweigen und dem Stamm hin- und herwechseln muss. Ich möchte also zumindest eine Art Skript erstellen, das ich im Terminal ausführen und ein eindeutiges Befehlsbeispiel eingeben kann:

./subchange trunk

oder

./subchange branch1

Es macht mir nichts aus, die oben genannten Dinge für jeden Ordner, in den ich wechseln muss, fest zu codieren oder für jeden Ordner eine eindeutige Kennung zu erstellen, um mir das Leben ein wenig zu erleichtern, aber ich bin mir nicht sicher, wie ich tatsächlich ein Skript erstelle, damit ich es als benutzerdefinierten Befehl verwenden kann, oder welche Art von Skript ich verwenden müsste, damit es unter Linux funktioniert. Daher wäre mir an dieser Stelle jeder Ratschlag/jede Hilfe willkommen.

Antwort1

Wenn ein Skript ausführbar ist und sein übergeordnetes Verzeichnis in Ihrem liegt $PATH, können Sie es als Befehl verwenden. Sie können beispielsweise aus den von Ihnen genannten Befehlen ein Bash-Skript erstellen:

#!/bin/bash

cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink

Anschließend können Sie es als Datei speichern subchangeund mit ausführbar machen chmod +x subchange. Ich habe ein Verzeichnis mit Skripten auf meinem System (zum Beispiel /tech/scripts), die ich zu meinem hinzufüge $PATH. Oftmals $PATHwird die Umgebungsvariable in einer ~/.profile, ~/.bashrc, /etc/bashrcoder ähnlichen Datei festgelegt. Sie können Ihr Verzeichnis folgendermaßen hinzufügen:

export PATH=/tech/scripts:$PATH

Wenn Sie das zu einer Startdatei hinzugefügt haben, müssen Sie Ihre Shell neu starten oder sie als Quelle verwenden (z. B. source ~/.bashrc). Jetzt können Sie subchangeauf der Befehlszeile verwenden und diese Befehle werden ausgeführt. Um dem Befehl ein Argument hinzuzufügen, können Sie den $1Operator verwenden. In Bash steht dies für das erste Argument, wenn ich also tue, subchange trunkwird $1es trunk. Sie können dies dann nach Bedarf in Ihr Skript einfügen:

#!/bin/bash

cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/$1/symlink
cd /new/path/$1/symlink

Der #!Anfang der Datei heißt asiebang(sie bewegt sich ... sie bewegt sich ...). Für ein Skript auf einem Unix-System teilt es dem System mit, über welche Binärdatei die folgenden Befehle ausgeführt werden sollen. In diesem Fall geben wir an, /bin/bashweil wir diese Datei als Bash-Befehle ausführen möchten und die Bash-Binärdatei in ist /bin. Dies könnte jedoch eine andere Sprache angeben und auf deren Binärdatei verweisen.

verwandte Informationen