Både `CP '(kopia) och` ln` (länk) är Unix -kommandon som används för att skapa ytterligare sätt att komma åt filer, men de gör det på grundläggande olika sätt. Att förstå denna skillnad är avgörande för att undvika oväntat beteende.
`cp` (kopia):
* skapar en duplikat: `CP` skapar en helt separat kopia av filen. Denna kopia upptar sitt eget utrymme på disken. Ändringar som gjorts i den ursprungliga filen påverkar inte kopian och vice versa.
* Filstorlek: Den kopierade filen har samma storlek som originalet.
* metadata: Medan vissa metadata (som behörigheter och tidsstämplar) kan kopieras, är det inte alltid en perfekt replikering. Inode -numret (en unik identifierare för en fil i filsystemet) kommer att vara annorlunda.
* Användning: Använd `CP` när du behöver en oberoende, separat version av en fil. Om du ändrar en förblir den andra orörd.
`ln` (länk):
* skapar en pekare: `ln` skapar en länk, som i huvudsak är en pekare till den ursprungliga filen. Det skapar inte en ny kopia av uppgifterna; Istället skapar det en ny katalogpost som pekar på samma inode som den ursprungliga filen.
* Filstorlek: Länken i sig tar upp mycket lite diskutrymme. Storleken är i huvudsak storleken på länkens namn.
* metadata: Länken ärver några metadata från den ursprungliga filen.
* Två typer av länkar:
* hårda länkar: Kan endast skapas för filer (inte kataloger), och flera hårda länkar pekar alla på samma data. Att ta bort en hård länk Radera inte originaldata om inte * alla * hårda länkar raderas.
* Symboliska länkar (mjuka länkar): Kan peka på filer * eller * kataloger. De innehåller sökvägen till den ursprungliga filen. Att ta bort en symbolisk länk påverkar inte den ursprungliga filen. Om den ursprungliga filen flyttas eller raderas kommer den symboliska länken att brytas.
Här är en tabell som sammanfattar de viktigaste skillnaderna:
| Funktion | `CP` (kopia) | `ln` (länk) |
| ---------------- | ---------------------- | ---------------------- |
| Åtgärd | Skapar en duplikat | Skapar en pekare |
| Diskutrymme | Använder ytterligare utrymme | Minimalt extra utrymme |
| Dataändring | Oberoende kopior | Ändringar påverkar alla länkar (hårda länkar) |
| File Radetion | Att ta bort en kopia påverkar inte andra | Att ta bort alla hårda länkar raderar data; Symboliska länkar blir trasiga |
| Filtyp | Fungerar om filer och kataloger | Endast hårda länkar:filer filer; Symboliska länkar:Filer och kataloger |
Exempel:
Låt oss säga att du har en fil som heter `myDocument.txt`.
* `cp mydocument.txt mydocument_copy.txt` skapar en helt separat kopia.
* `ln mydocument.txt mydocument_link` skapar en hård länk. Både `myDocument.txt` och` myDocument_link` hänvisar till samma data.
* `ln -s mydocument.txt mydocument_symlink` skapar en symbolisk länk. `MyDocument_Symlink` pekar på` mydocument.txt`.
I huvudsak:Använd `CP` när du behöver en riktig kopia; Använd `ln` när du vill ha flera namn som pekar på samma data (hårda länkar) eller en bekväm genväg (symboliska länkar). Välj kommandot som bäst passar dina behov baserat på om du behöver oberoende kopior eller effektiv referens.