cp în Linux / Bash

Navigare și fișiere POSIX / GNU Coreutils

Copiază fișiere și directoare de la o locație sursă către o destinație.

Sintaxă comandă
cp [opțiuni] sursă destinație

Ce face cp

Comanda cp (copy) duplică fișiere sau directoare întregi. Poți copia un fișier într-un alt fișier sau mai multe fișiere într-un director existent.

Pentru a copia directoare cu tot conținutul lor, este obligatoriu să specifici opțiunea recursivă -r sau modul arhivă -a (care păstrează și permisiunile, timestamp-urile și proprietarii).

Opțiuni și argumente

Opțiune / Parametru Descriere
-r, -R, --recursive Copiază recursiv directoarele și tot conținutul lor.
-a, --archive Echivalent cu -dR --preserve=all; păstrează atributele, drepturile, linkurile simbolice și timestamp-urile.
-i, --interactive Cere confirmare înainte de a suprascrie un fișier existent la destinație.
-u, --update Copiază doar dacă sursa este mai nouă decât destinația sau dacă destinația nu există.
-v, --verbose Explică detaliat ce fișiere sunt copiate.

Exemple

Exemplul 1: Copierea unui fișier simplu

Duplicăm un fișier de configurare creând o copie de rezervă.

echo "PORT=8080" > config.env
cp config.env config.env.backup
cat config.env.backup

Rezultat

PORT=8080

Exemplul 2: Copierea recursivă a unui folder

Copiem un director cu toate fișierele și subdirectoarele din el.

mkdir -p imagini/avatar
touch imagini/avatar/eu.png
cp -r imagini backup_imagini
ls backup_imagini/avatar

Rezultat

eu.png

Greșeli frecvente

  • Copierea unui director fără opțiunea -r, ceea ce generează eroarea „cp: -r not specified; omitting directory”.
  • Suprascrierea accidentală a unui fișier important la destinație fără a folosi opțiunea -i.

Comenzi înrudite

  • mv: Mută sau redenumește fișiere și directoare.
  • rm: Șterge definitiv fișiere și directoare din sistemul de fișiere.
  • rsync: Sincronizează fișiere și directoare rapid, transferând doar blocurile modificate (transfer delta).