Problema
Quando copio i file con cp -H
o cp -L
, ottengo gli stessi risultati:
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
Questa risposta qui descrive entrambe le opzioni come SENZA MENO utilizzate in combinazione con -R
. Non per me. I file con collegamento fisso diventano copie rinominate dei file a cui puntano alla fonte.
Domanda :
Qual è l'uso corretto di cp -H
e cp -L
? È questo il comportamento previsto?
Il mio tentativo di risolvere :
man cp
mi dice lo stesso per entrambe le opzioni, ma info cp
la formulazione rende ancora più confuso per me. Forse uno può aiutarmi a scomporre un po 'questo:
-H
Se un argomento della riga di comando specifica un collegamento simbolico, copia il file a cui punta anziché il collegamento simbolico stesso. Tuttavia, copia (preservandone la natura) ogni collegamento simbolico che si incontra attraverso l'attraversamento ricorsivo.
Mi sembra una contraddizione: immagino che " la natura di un collegamento simbolico " sia che indica da qualche parte ...
-L, --dereference
Segui i collegamenti simbolici quando copi da loro. Con questa opzione,cp
non è possibile creare un collegamento simbolico. Ad esempio, un collegamento simbolico (in un file normale) nella struttura di origine verrà copiato in un file normale nella struttura di destinazione.
So che un link simbolico non è un file normale, ma ... ammetto di aver superato questa spiegazione qui.
info cp
e ho cercato di capire cosa significhi effettivamente la scelta delle parole su questa opzione & ndash; e di cui parla questo post. Il post contiene anche la dicitura effettiva di info cp
- quindi devo averlo almeno aperto ...;)
info cp
, cerca-R
. DiceCopy directories recursively.
Ma stai testando con non directory. La differenza sta nel contenuto delle directory che si stanno copiando, non negli argomenti della riga di comando.