J'essaie de comprendre ce que cp --preserve=links
fait lorsqu'il est utilisé seul, d'après mes tests, il semble qu'il copie normalement un fichier normal et déréférence les liens symboliques, mais il semble qu'il ait le même effet que cp -L lorsqu'il est utilisé sur un seul fichier.
Est-ce vrai ou y a-t-il quelque chose qui me manque ?
Réponse acceptée :
Le --preserve=links
L'option ne fait pas référence à des liens symboliques, mais à des liens physiques. Il demande cp
pour conserver tout lien physique existant entre deux ou plusieurs fichiers en cours de copie.
$ date > file1
$ ln file1 file2
$ ls -1i file1 file2
6034008 file1
6034008 file2
Vous pouvez voir que les deux fichiers d'origine sont liés en dur et que leur numéro d'inode est 6034008.
$ mkdir dir1
$ cp file1 file2 dir1
$ ls -1i dir1
total 8
6035093 file1
6038175 file2
Vous pouvez voir maintenant que sans --preserve=links
leurs copies ont deux numéros d'inodes différents :il n'y a plus de lien dur entre les deux.
$ mkdir dir2
$ cp --preserve=links file1 file2 dir2
$ ls -1i dir2
total 8
6089617 file1
6089617 file2
Vous pouvez maintenant voir cela avec --preserve=links
, les deux copies sont toujours liées en dur, mais leur numéro d'inode est 6089617, ce qui n'est pas le même que le numéro d'inode des fichiers originaux (contrairement à ce que cp --link
aurait fait).