Sto cercando di capire cosa cp --preserve=links
fa quando viene utilizzato da solo, dai miei test sembra che copi normalmente un file normale e dereferenzia i collegamenti simbolici, ma sembra che abbia lo stesso effetto di cp -L quando viene utilizzato su un singolo file.
È vero o c'è qualcosa che mi sfugge?
Risposta accettata:
Il --preserve=links
opzione non si riferisce a collegamenti simbolici, ma a collegamenti reali. Chiede cp
per preservare qualsiasi collegamento reale esistente tra due o più file che vengono copiati.
$ date > file1
$ ln file1 file2
$ ls -1i file1 file2
6034008 file1
6034008 file2
Puoi vedere che i due file originali sono collegati fisicamente e il loro numero di inode è 6034008.
$ mkdir dir1
$ cp file1 file2 dir1
$ ls -1i dir1
total 8
6035093 file1
6038175 file2
Ora puoi vederlo senza --preserve=links
le loro copie hanno due numeri di inode diversi:non c'è più un legame reale tra i due.
$ mkdir dir2
$ cp --preserve=links file1 file2 dir2
$ ls -1i dir2
total 8
6089617 file1
6089617 file2
Ora puoi vederlo con --preserve=links
, le due copie sono ancora hard-linkate, ma il loro numero di inode è 6089617, che non è lo stesso del numero di inode dei file originali (contrariamente a quanto cp --link
avrebbe fatto).