Snažím se pochopit, co cp --preserve=links
dělá, když se používá samostatně, z mých testů se zdá, že normálně kopíruje normální soubor a dereferencuje symbolické odkazy, ale zdá se, že to má stejný účinek jako cp -L při použití na jeden soubor.
Je to pravda, nebo mi něco chybí?
Přijatá odpověď:
--preserve=links
volba se nevztahuje na symbolické odkazy, ale na pevné odkazy. Ptá se to cp
pro zachování jakéhokoli existujícího pevného spojení mezi dvěma nebo více soubory, které se kopírují.
$ date > file1
$ ln file1 file2
$ ls -1i file1 file2
6034008 file1
6034008 file2
Můžete vidět, že dva původní soubory jsou pevně propojeny a jejich číslo inodu je 6034008.
$ mkdir dir1
$ cp file1 file2 dir1
$ ls -1i dir1
total 8
6035093 file1
6038175 file2
Nyní můžete vidět, že bez --preserve=links
jejich kopie mají dvě různá čísla inodů:mezi nimi již není pevné spojení.
$ mkdir dir2
$ cp --preserve=links file1 file2 dir2
$ ls -1i dir2
total 8
6089617 file1
6089617 file2
Nyní to můžete vidět pomocí --preserve=links
, dvě kopie jsou stále pevně propojeny, ale jejich číslo inodu je 6089617, což není stejné jako číslo inodu původních souborů (na rozdíl od cp --link
by udělal).