Problem
Beim Kopieren von Dateien mit cp -Hoder cp -Lerhalte ich die gleichen Ergebnisse:
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
Diese Antwort hier beschreibt beide Optionen als ähnlich, UNLESS in Kombination mit -R. Nicht für mich. Soft-as-Hardlink-Dateien werden in Kopien der Dateien umbenannt, auf die sie an der Quelle verweisen.
Frage :
Was ist der richtige Gebrauch von cp -Hund cp -L? Ist das das erwartete Verhalten?
Mein Lösungsversuch :
man cpsagt mir für beide Optionen dasselbe, aber info cpder Wortlaut macht es für mich noch verwirrender. Vielleicht kann man mir helfen, das ein bisschen aufzuschlüsseln:
-HWenn ein Befehlszeilenargument eine symbolische Verknüpfung angibt, kopieren Sie die Datei, auf die es verweist, und nicht die symbolische Verknüpfung selbst. Kopieren Sie jedoch alle symbolischen Verknüpfungen , die durch rekursives Durchlaufen auftreten (wobei die Natur der Verknüpfung erhalten bleibt).
Das klingt für mich wie ein Widerspruch: Ich denke, dass » die Natur eines symbolischen Links « ist, dass es irgendwo hinweist…
-L, --dereferenceFolgen Sie beim Kopieren symbolischen Links. Mit dieser Optioncpkann keine symbolische Verknüpfung erstellt werden. Beispielsweise wird ein Symlink (zu einer regulären Datei) im Quellbaum in eine reguläre Datei im Zielbaum kopiert.
Ich weiß, dass ein Symlink keine reguläre Datei ist, aber… ich gebe zu, dass ich mit dieser Erklärung hier überfordert bin.
info cpund versuchte herauszufinden, was die Wortwahl bei dieser Option tatsächlich bedeutet & ndash; und worum es in diesem Beitrag geht. Das Posting enthält auch den eigentlichen Wortlaut von info cp- also muss ich ihn zumindest geöffnet haben…;)
info cp, suchen nach-R. Es heißtCopy directories recursively.aber Sie testen mit Nicht-Verzeichnissen. Der Unterschied besteht darin, was sich in den Verzeichnissen befindet, die Sie kopieren, und nicht in den Befehlszeilenargumenten.