Wie kann ich relative symbolische Links rekursiv in bash in absolute symbolische Links konvertieren?relative symbolische Links in absolute symbolische Links konvertieren
Antwort
ln -sf "$(readlink -f "$link")" "$link"
+1, wusste nicht über die Canonicalization Optionen zu lesen! – Flexo
Sie können dies für alle symbolischen Links unter dem aktuellen Arbeitsverzeichnis tun: 'find ./ -type l -execdir bash -c 'ln -sfn" $ (readlink -f "$ 0") "" $ 0 "' {} \ ; ' –
Bei Symlinks, die auf Verzeichnisse verweisen, schlägt dies fehl: Es werden neue Symlinks mit demselben Namen innerhalb des Verzeichnisses erzeugt (zB für einen Symlink foo -> ../foo bekommst du foo/foo ->/abs/pfad/zu/foo) . –
Nur falls jemand suchen Rückwärtsbetrieb: Umwandlung von absoluten Links zu relativ:
Python:
find . -lname "`pwd`*" -exec sh -c 'ln -snvf `python -c "from os.path import *; print relpath(\"$(readlink {})\",dirname(\"{}\"))"` {}' \;
nur bash verwenden und sed:
find . -lname "`pwd`/*" -depth 1 -exec sh -c 'ln -snvf `echo $(readlink {}) | sed "s|\`pwd\`|.|"` {}' \;
find . -lname "`pwd`/*" -depth 2 -exec sh -c 'ln -snvf `echo $(readlink {}) | sed "s|\`pwd\`|..|"` {}' \;
find . -lname "`pwd`/*" -depth 3 -exec sh -c 'ln -snvf `echo $(readlink {}) | sed "s|\`pwd\`|../..|"` {}' \;
etc....
Dies würde alle absoluten Links in den Unterverzeichnissen in relative Verzeichnisse umwandeln.
Es gibt auch ein Symlinks-Paket: 'symlinks -a/path/to/modify' http://linux.die.net/man/8/symlinks – pztrick
Leider ist es auf einigen Betriebssystemen nicht verfügbar. ; ( –
) Du kannst die Debian-Quelldatei herunterladen und einfach 'gcc symlinks.c -o/usr/local/bin/symlinks' ausführen. Scheint nicht von etwas anderem abhängig zu sein. Http://http.debian.net/ debian/pool/main/s/symlinks/symlinks_1.4.orig.tar.gz – pztrick
Basierend auf @ thkala Antwort, habe ich das meinen .bashrc:
function lnabs {
#http://stackoverflow.com/questions/4187210/convert-relative-symbolic-links-to-absolute-symbolic-links
ln -sf "$(readlink -f "$1")" "$*"
}
- 1. Symbolische Links in Windows
- 2. Emacs und symbolische Links
- 3. Symbolische Links CMake
- 4. Ignoriere symbolische Links in .gitignore
- 5. Java 1.6 - symbolische Links bestimmen
- 6. symbolische Links tomcat 8 Verzeichnisressourcen
- 7. Harte Link und symbolische Links in Unix
- 8. Wie kopiere ich symbolische Links in Perl?
- 9. Verhalten von cd/bash auf symbolische Links
- 10. Wie kopiere ich symbolische Links zwischen Servern?
- 11. Neuinstallation Homebrew symbolische Links nach einer Wiederherstellung
- 12. Wie kann ich symbolische Links in bash deaktivieren?
- 13. Symbolische Referenzdateien
- 14. Warum können Sie symbolische Links zu Git setzen?
- 15. Laravel Elixir Kopie funktioniert nicht auf symbolische Links
- 16. Wie können Sie symbolische Links mit einem Remote-Mount verwenden?
- 17. Wie lässt Dropbox symbolische Links behandeln wie es ist?
- 18. Erstellen Sie symbolische Links, anstatt Dateien zu kopieren
- 19. symbolische Berechnung
- 20. Wie kann Chrome verhindern, dass relative Links beim Kopieren/Einfügen in absolute Links umgewandelt werden?
- 21. Lstat erkennt keine symbolische Verbindung
- 22. symbolische Berechnung in C++
- 23. Symbolische Verbindung im Subversion-Repository?
- 24. Konvertieren relative Pfade Absolute Pfade
- 25. Löschen eines Ordners, der symbolische Verknüpfungen enthält
- 26. EOF symbolische Konstante
- 27. Auf symbolische Verbindung prüfen
- 28. Symbolische JCL Verwirrung
- 29. ASP.net Teilansicht relative Aktion Links
- 30. Erstellen symbolische Funktion
Was meinst du mit "rekursiv"? – thkala