Ich arbeite an einem Deinstallationsskript, um den übergeordneten Ordner zu löschen, in dem das Skript installiert ist.Abrufen des übergeordneten Verzeichnisses des Skripts
/usr/local/Myapplication/Uninstaller/uninstall.sh
So hat uninstall.sh dies zu tun:
rm- rf /usr/local/Myapplication
ich den Ordner abrufen können, wo Deinstallation
SYMLINKS=$(readlink -f "$0")
UNINSTALL_PATH=$(dirname "$SYMLINKS")
wohnt Aber ich bin immer noch unsicher über die hübsche Weise zu erhalten der übergeordnete Pfad Ich dachte an sed, um den "Uninstaller" Teil dieses Pfades zu entfernen, aber gibt es eine elegante Möglichkeit, den Pfad zum Myapplication-Ordner zu bekommen, um ihn zu löschen?
Danke
in Ihrem Skript: 'cd "$ (dirname "$ 0")" && cd .. && cd .. && [-d Meine Güte pplication/Uninstaller] && rm -rf Myapplication' (Ich fügte hinzu, dass das zu löschende Verzeichnis ein Unterverzeichnis "Uninstaller" enthält, aber Sie könnten vielleicht eine bessere Überprüfung hinzufügen, zum Beispiel eine notwendige Datei in Myapplication?). Wenn Sie Myapplication nicht kennen, dann: 'cd" $ (dirname $ 0) "&& cd .. && zepath =" $ (pwd) "&& cd .. && [-f" $ {zepath}/somefilesthat hier "] && rm -rf "$ {zepath}" ' –
Sehen Sie das berühmte [Kann ein Bash-Skript sagen, in welchem Verzeichnis es gespeichert ist?] (http://stackoverflow.com/questions/59895/can-a-bash-script-tell-) was-directory-its-stored-in) Frage, dann 'cd ..' von dort. –