Je cherche la différence entre cp -r
et cp -a
. Que signifie "récursif" en termes de copie de fichiers à partir d'un dossier?
Récursif signifie que cp
copie le contenu des répertoires, et si un répertoire a des sous-répertoires, ils sont également copiés (récursivement). Sans pour autant -R
, la commande cp
ignore les répertoires. -r
est identique à -R
sous Linux, il diffère dans certains cas Edge sur certaines autres variantes Unix.
Par défaut, cp
crée un nouveau fichier qui a le même contenu que l'ancien fichier, et les mêmes autorisations mais limitées par le mask ; la copie est datée de la date de la copie et appartient à l'utilisateur qui effectue la copie. Avec le -p
, la copie a le même temps de modification, le même temps d'accès et les mêmes autorisations que l'original. Il a également le même propriétaire et le même groupe que l'original, si l'utilisateur effectuant la copie a l'autorisation de créer de tels fichiers.
Le -a
option signifie -R
et -p
, ainsi que quelques autres options de conservation. Il tente de faire une copie aussi proche que possible de l'original: même arborescence de répertoires, mêmes types de fichiers, mêmes contenus, mêmes métadonnées (horaires, autorisations, attributs étendus, etc.).
L'option -r ou -R pour "récursif" signifie qu'elle copiera tous les fichiers, y compris les fichiers à l'intérieur des sous-dossiers.
L'option -a répertoriée est la même que -dR, ce qui signifie qu'elle conservera les liens et copiera le contenu des sous-répertoires. Ce que cela signifie en préservant les liens, c'est qu'il ne suivra pas les liens lors de la copie récursive.