« cp » (copie) et « ln » (lien) sont des commandes Unix utilisées pour créer des moyens supplémentaires d'accéder aux fichiers, mais elles le font de manières fondamentalement différentes. Comprendre cette différence est crucial pour éviter un comportement inattendu.
`cp` (copie) :
* Crée un doublon : `cp` crée une copie complètement séparée du fichier. Cette copie occupe son propre espace sur le disque. Les modifications apportées au fichier original n'affecteront pas la copie, et vice versa.
* Taille du fichier : Le fichier copié aura la même taille que l'original.
* Métadonnées : Même si certaines métadonnées (telles que les autorisations et les horodatages) peuvent être copiées, la réplication n'est pas toujours parfaite. Le numéro d'inode (un identifiant unique pour un fichier sur le système de fichiers) sera différent.
* Utilisation : Utilisez `cp` lorsque vous avez besoin d'une version indépendante et distincte d'un fichier. Si vous modifiez l'un, l'autre reste intact.
`ln` (lien) :
* Crée un pointeur : `ln` crée un lien, qui est essentiellement un pointeur vers le fichier d'origine. Cela ne crée pas de nouvelle copie des données ; au lieu de cela, il crée une nouvelle entrée de répertoire qui pointe vers le même inode que le fichier d'origine.
* Taille du fichier : Le lien lui-même occupe très peu d’espace disque. La taille correspond essentiellement à la taille du nom du lien.
* Métadonnées : Le lien hérite de certaines métadonnées du fichier d'origine.
* Deux types de liens :
* Liens physiques : Ne peut être créé que pour des fichiers (pas des répertoires), et plusieurs liens physiques pointent tous vers les mêmes données. La suppression d'un lien physique ne supprime pas les données d'origine, sauf si *tous* les liens physiques sont supprimés.
* Liens symboliques (liens logiciels) : Peut pointer vers des fichiers *ou* des répertoires. Ils contiennent le chemin d'accès au fichier d'origine. La suppression d'un lien symbolique n'affecte pas le fichier d'origine. Si le fichier d'origine est déplacé ou supprimé, le lien symbolique sera rompu.
Voici un tableau résumant les principales différences :
| Fonctionnalité | `cp` (copie) | `ln` (lien) |
|----------------|----------------------|----------------------|
| Actions | Crée un doublon | Crée un pointeur |
| Espace disque | Utilise de l'espace supplémentaire | Espace supplémentaire minimal |
| Modification des données | Copies indépendantes | Les modifications affectent tous les liens (liens physiques) |
| Suppression de fichiers | La suppression d'une copie n'affecte pas les autres | La suppression de tous les liens physiques supprime les données ; les liens symboliques se rompent |
| Type de fichier | Fonctionne sur les fichiers et répertoires | Liens physiques :fichiers uniquement ; liens symboliques :fichiers et répertoires |
Exemple :
Disons que vous avez un fichier nommé « mondocument.txt ».
* `cp mydocument.txt mydocument_copy.txt` crée une copie complètement séparée.
* `ln mydocument.txt mydocument_link` crée un lien physique. « mydocument.txt » et « mydocument_link » font tous deux référence aux mêmes données.
* `ln -s mydocument.txt mydocument_symlink` crée un lien symbolique. `mydocument_symlink` pointe vers `mydocument.txt`.
En substance :utilisez « cp » lorsque vous avez besoin d'une copie fidèle; utilisez « ln » lorsque vous souhaitez que plusieurs noms pointent vers les mêmes données (liens physiques) ou un raccourci pratique (liens symboliques). Choisissez la commande qui correspond le mieux à vos besoins selon que vous avez besoin de copies indépendantes ou d'un référencement efficace.
|