Am Sam, 2003-02-08 um 19.49 schrieb Bernhard Walle:
Hallo,
On Sat, 08 Feb 2003 at 17:53 (+0100), Ralf Corsepius wrote:
Am Sam, 2003-02-08 um 15.25 schrieb Bernhard Walle:
On Sat, 08 Feb 2003 at 14:36 (+0100), Ratti wrote:
Am Sam, 2003-02-08 um 11.08 schrieb Bernhard Walle:
On Sat, 08 Feb 2003 at 10:51 (+0100), Ratti wrote:
Stimmt. Da ich aber kein Perl-Modul gefunden habe, welches in der Lage wäre, Dateien zu kopieren bei vollständiger Beibehaltung der Attribute, mache ich sowas ohnehin über die Shell: `cp -a $src $dest`;
Ist -a nicht eine GNU-Erweiterung? Bin mir aber nicht sicher.
Tja. Ich weiss es nicht. Aber was soll ich machen? Wenn andere das Feature nicht anbieten kann ich a) Für alle das Feature auch nicht anbieten b) Nur den OSsen eine lange Nase ziehen, die das Feature nicht haben.
Ich bevorzuge b).
Es liegt bei Dir. Ich bevorzuge
c) Portable Lösungen ("Schreib deinen Code so, dass das Problem erst gar nicht auftritt")
Man kann ja zunaechst pruefen, ob es sich um eine GNU-Umgebung handelt Ein besserer Ansatz wäre, zu prüfen, ob ein System ein Feature bietet und es dann zu nutzen, wenn dieses Feature Vorteile bietet, nicht wie Du vorschlägst, auf "GNU" oder "Linux" o.ä. zu testen.
Und wie testet man sowas (in diesem Fall) zuverlaessig? Einfach cp -a ausfuehren und Fehlercodes ueberpruefen? Wohl eher nicht. Das wäre eine prinzipielle Möglichkeit und kann, wie Du erkannt hast, im Detail schnell sehr komplex werden.
Nur ist "cp -a" ein Klassiker unter den Portabilitätsproblemen, zu dem es eigentlich keine wirkliche Lösung gibt. Ausserdem kann man durchaus der Meinung sein, dass "cp -a" generell keinen Sinn in Makefiles macht und sich eigentlich immer vermeiden lässt.
ich habe mich aber mal an einem HP_UX-System eingeloggt und in dessen Manpage nachgesehen, von -a steht da jedenfalls nichts. Der Auszug oben stammt aus einer SunOS4-Manpage (SunOS4 stellt ungefähr den kleinsten gemeinsamen Nenner der Shellprogrammierung dar.)
Gibt's die irgendwo im Internet? Nicht, dass ich wüsste :-)
Ralf