| Zowel `cp` (kopiëren) als `ln` (link) zijn Unix-commando's die worden gebruikt om extra manieren te creëren om toegang te krijgen tot bestanden, maar ze doen dit op fundamenteel verschillende manieren. Het begrijpen van dit verschil is cruciaal om onverwacht gedrag te voorkomen.
`cp` (kopie):
* Maakt een duplicaat: `cp` maakt een volledig aparte kopie van het bestand. Deze kopie neemt zijn eigen ruimte op de schijf in beslag. Wijzigingen in het originele bestand hebben geen invloed op de kopie, en omgekeerd.
* Bestandsgrootte: Het gekopieerde bestand heeft dezelfde grootte als het origineel.
* Metagegevens: Hoewel sommige metagegevens (zoals machtigingen en tijdstempels) kunnen worden gekopieerd, is dit niet altijd een perfecte replicatie. Het inodenummer (een unieke identificatie voor een bestand op het bestandssysteem) zal anders zijn.
* Gebruik: Gebruik `cp` als je een onafhankelijke, afzonderlijke versie van een bestand nodig hebt. Als je het ene wijzigt, blijft het andere onaangeroerd.
`ln` (link):
* Maakt een aanwijzer: `ln` creëert een link, die in wezen een verwijzing is naar het originele bestand. Er wordt geen nieuwe kopie van de gegevens gemaakt; in plaats daarvan wordt er een nieuw directory-item gemaakt dat naar dezelfde inode verwijst als het originele bestand.
* Bestandsgrootte: De link zelf neemt zeer weinig schijfruimte in beslag. De grootte is in wezen de grootte van de naam van de link.
* Metagegevens: De link neemt enkele metagegevens over van het originele bestand.
* Twee soorten links:
* Harde links: Kan alleen worden gemaakt voor bestanden (geen mappen), en meerdere harde links verwijzen allemaal naar dezelfde gegevens. Als u één harde link verwijdert, worden de oorspronkelijke gegevens niet verwijderd, tenzij *alle* harde links worden verwijderd.
* Symbolische links (zachte links): Kan verwijzen naar bestanden *of* mappen. Ze bevatten het pad naar het originele bestand. Het verwijderen van een symbolische link heeft geen invloed op het originele bestand. Als het originele bestand wordt verplaatst of verwijderd, wordt de symbolische link verbroken.
Hier is een tabel met een samenvatting van de belangrijkste verschillen:
| Kenmerk | `cp` (kopie) | `ln` (link) |
|---------------|---------------------|-------------------|
| Actie | Creëert een duplicaat | Creëert een aanwijzer |
| Schijfruimte | Gebruikt extra ruimte| Minimale extra ruimte |
| Gegevenswijziging | Onafhankelijke exemplaren | Wijzigingen hebben betrekking op alle links (harde links) |
| Bestanden verwijderen | Het verwijderen van één exemplaar heeft geen invloed op anderen | Als u alle harde links verwijdert, worden gegevens verwijderd; symbolische links worden verbroken |
| Bestandstype | Werkt op bestanden en mappen | Harde links:alleen bestanden; symbolische links:bestanden en mappen |
Voorbeeld:
Stel dat u een bestand heeft met de naam `mijndocument.txt`.
* `cp mijndocument.txt mijndocument_copy.txt` creëert een volledig aparte kopie.
* `In mijndocument.txt mijndocument_link` creëert een harde link. Zowel `mijndocument.txt` als `mijndocument_link` verwijzen naar dezelfde gegevens.
* `ln -s mijndocument.txt mijndocument_symlink` creëert een symbolische link. `mijndocument_symlink` verwijst naar `mijndocument.txt`.
In essentie:Gebruik `cp` als je een echte kopie nodig hebt; gebruik `ln` als u wilt dat meerdere namen naar dezelfde gegevens verwijzen (harde links) of naar een handige snelkoppeling (symbolische links). Kies de opdracht die het beste bij uw behoeften past, afhankelijk van of u onafhankelijke kopieën of efficiënte verwijzingen nodig heeft. |