web-dev-qa-db-fra.com

Différence entre cp -r et cp -a

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?

197
Randy

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.

21
Joe