Welche Version von Xattr unter OSX 10.5 folgt keinen symbolischen Links?

676
timoto

Ich muss erweiterte Attribute von Verzeichnissen bearbeiten, bei denen es sich um symbolische Links handelt.

xattr, das in OSX 10.5 enthalten ist, schreibt leider in das Linkziel statt in den Link selbst.

Ich habe eine andere Version entdeckt, die eine Option "-s" unterstützt, um die folgenden symbolischen Links zu unterdrücken. Ich habe es aus dem Repository ausgecheckt, aber es gibt keine Installationsdatei, die ich ausmachen kann, und ich denke, ich brauche eine: https://xattr.svn.sourceforge.net/svnroot/xattr

Dann fand ich eine andere Version, checkte sie aus und konnte sie nach der Installation von Xcode endlich installieren:

http://svn.red-bean.com/bob/xattr/releases/xattr-0.6.1/

Wenn ich jedoch diese Version starte, scheint mir die magische "-s" -Option nicht zu folgen, um die folgenden symbolischen Links zu unterdrücken. Tatsächlich schien diese Version keine anderen Optionen zu haben, die der ursprüngliche xattr hatte.

Hat jemand eine Version von xattr, die unter OSX 10.5 ausgeführt wird und nicht symbolischen Links folgen kann, oder einer anderen App, mit der ich erweiterte Attribute schreiben und nicht symbolischen Links folgen kann?

3

1 Antwort auf die Frage

1
Chris Johnsen

Die Variante unter https://github.com/jwodder/xattr 1 enthält die -POption, die das übliche Verhalten der folgenden symbolischen Links unterdrückt (dh die Option XATTR_NOFOLLOW wird an listxattr (2) usw. übergeben). Die mitgelieferte Dokumentation weist darauf hin, dass dies der Modus "Mit dem Symlink und nicht mit dem Ziel arbeiten" ist (standardmäßig wurde der Standard für das Ziel verwendet, der Code wurde jedoch kürzlich entsprechend der Dokumentation aktualisiert ).

Die Optionen und Betriebsmodi unterscheiden sich vom üblichen xattr (1), so dass Sie möglicherweise bereits vorhandene Skripts anpassen müssen.

Da Sie bereits gesagt haben, dass Sie die Developer Tools bereits installiert haben (zB Xcode), makesollte das Programm einfach erstellt werden. Ich habe es auf einem Computer mit Mac OS X 10.6.7 kompiliert und leicht getestet (ich habe es zuvor auch auf einem 10.4-Computer verwendet, daher sollte es auf 10.5 funktionieren).


Hinweis zu „Verzeichnissen, die symbolische Links sind“: Ein Verzeichniseintrag kann entweder ein Verzeichnis oder ein symbolischer Link (oder eine einfache Datei usw.) sein, jedoch nicht beide. Es ist nicht richtig, entweder "ein Verzeichnis, das eine symbolische Verbindung ist" oder "eine symbolische Verbindung, die ein Verzeichnis ist" zu sagen. Richtig, es ist nur „ein symbolischer Link, der letztlich zwei Punkte auf ein Verzeichnis“.

1 Sie können die Schaltfläche "Downloads" auf der rechten Seite der GitHub-Seite verwenden, um a herunterzuladen .tar.gzoder .zipwenn Sie Git nicht installiert haben.

2 „Letztendlich“, weil symbolische Links auf andere symbolische Links verweisen können. Sie können sogar auf einen nicht vorhandenen Pfadnamen verweisen (wodurch ein symbolischer „baumelnder“ Link erzeugt wird).

vielen dank für noch ein xattr :) Ich habe den tar herunterlodiert, entpackt und dann "$ make" aus dem Ordner mit dem Makefile genommen. Ich bekam dann folgendes: "gcc -o xattr xattr.c -std = c99 -O2 ld: Ausgabedatei kann nicht zum Schreiben geöffnet werden: xattr collect2: ld gab 1 Exit-Status zurück. Make: *** [xattr] Fehler 1" Ich weiß nicht, wie man dieses Makefile zum Laufen bringt :( Danke auch für die Lektion bei der Definition eines symbolischen Links :) timoto vor 13 Jahren 0
@ Timoto: Es sieht so aus, als hätten Sie keinen Schreibzugriff auf das Verzeichnis, in dem Sie sich befinden. Haben Sie es vielleicht als root oder einen anderen Benutzer extrahiert? * Sudo * sollte nicht unbedingt diese tar-Datei entpacken und das Programm erstellen. Chris Johnsen vor 13 Jahren 0
DOH! Mein Hut vor Ihnen, Sir. Berechtigung stimmt nicht überein. Machen Sie, wie der Benutzer, der den Teer extrahiert hat, funktioniert. Ich kann jetzt ein schönes "-P" in der xattr-Hilfe sehen und vermutlich "-s" (set) schreiben. Vielen Dank, Chris. timoto vor 13 Jahren 0
@ timoto: Ja, `-s` steht für 'set'. Ich habe die Dokumentation nicht erwähnt. Die "Quelle" der Dokumentation ist "xattr.pod". Es ist Klartext, aber das [Pod-Markup] (http://perldoc.perl.org/perlpod.html) ist möglicherweise etwas schmerzhaft. Sie können `man. / Xattr.1` verwenden, um die Dokumentation als Manpage zu lesen. Chris Johnsen vor 13 Jahren 0