Ich versuche zu verstehen, was cp --preserve=links
ist tut, wenn es alleine verwendet wird, aus meinen Tests scheint es, dass es eine normale Datei normal kopiert und symbolische Links dereferenziert, aber es scheint, als hätte es genau den gleichen Effekt wie cp -L, wenn es auf eine einzelne Datei verwendet wird.
Stimmt das oder übersehe ich etwas?
Akzeptierte Antwort:
Die --preserve=links
Option bezieht sich nicht auf symbolische Links, sondern auf harte Links. Es fragt nach cp
um bestehende Hardlinks zwischen zwei oder mehr zu kopierenden Dateien beizubehalten.
$ date > file1
$ ln file1 file2
$ ls -1i file1 file2
6034008 file1
6034008 file2
Sie können sehen, dass die beiden Originaldateien fest verknüpft sind und ihre Inode-Nummer 6034008 ist.
$ mkdir dir1
$ cp file1 file2 dir1
$ ls -1i dir1
total 8
6035093 file1
6038175 file2
Sie können das jetzt ohne --preserve=links
sehen Ihre Kopien haben zwei unterschiedliche Inode-Nummern:Es gibt keine feste Verbindung mehr zwischen den beiden.
$ mkdir dir2
$ cp --preserve=links file1 file2 dir2
$ ls -1i dir2
total 8
6089617 file1
6089617 file2
Das sieht man jetzt mit --preserve=links
, die beiden Kopien sind immer noch fest verknüpft, aber ihre Inode-Nummer ist 6089617, was nicht die gleiche ist wie die Inode-Nummer der Originaldateien (im Gegensatz zu dem, was cp --link
hätte getan).