Anstatt Kopien von Dateien zu erstellen, kann der Befehl cp auch Hard- und Softlinks anlegen. Für eine Hardlink geben Sie die Option -l an und für einen Softlink die Option -s.
ole@enterprise:~/test> ls -ilG insgesamt 8 147475 -rw-r--r-- 1 ole 78 2004-06-28 21:46 blubb 147479 -rw-r--r-- 1 ole 144 2004-06-28 21:46 fasel ole@enterprise:~/test> cp -l blubb blubber ole@enterprise:~/test> cp -s fasel fusel ole@enterprise:~/test> ls -ilG insgesamt 12 147475 -rw-r--r-- 2 ole 78 2004-06-28 21:46 blubb 147475 -rw-r--r-- 2 ole 78 2004-06-28 21:46 blubber 147479 -rw-r--r-- 1 ole 144 2004-06-28 21:46 fasel 147481 lrwxrwxrwx 1 ole 5 2004-06-28 21:47 fusel -> fasel
Eine besondere Situation tritt auf, wenn Softlinks kopiert werden sollen. Denn hier stellt sich die Frage was denn nun eigentlich kopiert werden soll: Der Link oder die Datei, auf die der Link zeigt.
Wenn der Befehl cp ohne Option verwendet wird, wird die verlinkte Datei kopiert.
ole@enterprise:~/test> cp fusel fiesel ole@enterprise:~/test> ls -ilG 147479 -rw-r--r-- 1 ole 144 2004-06-28 21:46 fasel 147483 -rw-r--r-- 1 ole 144 2004-06-28 21:53 fiesel 147481 lrwxrwxrwx 1 ole 5 2004-06-28 21:47 fusel -> fasel
Bei der Verwendung des Schalters -d werden die Softlinks auch als Links kopiert.
ole@enterprise:~/test> ls -ilG 147485 lrwxrwxrwx 1 ole 5 2004-06-28 21:58 dusel -> fasel 147479 -rw-r--r-- 1 ole 144 2004-06-28 21:46 fasel 147483 -rw-r--r-- 1 ole 144 2004-06-28 21:53 fiesel 147481 lrwxrwxrwx 1 ole 5 2004-06-28 21:47 fusel -> fasel
Und wie sieht es bei Kopien über ganze Verzeichnisebenen hinweg aus? Der Link wird genau so kopiert, wie er auch dasteht. Relative Links bleiben relative Links und die Pfade werden nicht angepaßt. Sein Ziel muß also entsprechend mitkopiert werden. Bei absoluten Links, wo der Pfad an der Wurzel beginnt, gibt es das Problem nicht. Sie zeigen weiterhin auf die ursprüngliche Datei. Beide Verfahren haben Ihre Vor- und Nachteile.
ole@enterprise:~/test> cp -d /usr/bin/bunzip2 entpack ole@enterprise:~/test> cp -d /usr/X11/bin/X klickibunti ole@enterprise:~/test> ls -ilG 147475 lrwxrwxrwx 1 ole 5 2004-06-28 22:01 entpack -> bzip2 147479 lrwxrwxrwx 1 ole 16 2004-06-28 22:03 klickibunti -> /var/X11R6/bin/X