135 votes

Comment copier un fichier en préservant le chemin du répertoire sous Linux?

J'ai des projets Eclipse et des fichiers ".project" dedans, la structure du répertoire ressemble à 'monProjet/.project'. Je veux copier ces fichiers '.project' dans un autre répertoire, mais je veux que le nom du répertoire parent soit préservé.

Disons que j'ai 'a/monProjet/.project', je veux copier 'monProjet/.project' dans 'b', donc cela deviendrait 'b/monProjet/.project', mais 'b/monProjet' n'existe pas. Lorsque j'essaie dans a :

 cp -r ./monProjet/.project ../b

cela copie seulement le fichier '.project' lui-même, sans le répertoire 'monProjet'. Veuillez m'indiquer la marche à suivre.

0 votes

2voto

Unkcp Points 41
cp -P a/myProject/.project b

Voir man cp pour plus d'informations.

0 votes

Cela ne semble pas aider. Il copie uniquement '.projet' lui-même dans b, mais il ne copie pas 'myProject'.

0 votes

-P ne suit pas les liens symboliques

2voto

cml.co Points 121

En plus de --parents, il est également nécessaire d'ajouter l'option -r afin d'éviter d'omettre la copie du répertoire le plus interne

$ cp --parents test/1/.moo test2/
cp: omitting directory ‘test/1/.moo’

Donc la commande qui fonctionne pour moi est

$ cp --parents -r test/1/.moo test2/

1voto

chandra67 Points 1

Veuillez noter qu'il semble y avoir un bug dans cp --parents. Lorsque j'ai utilisé --parents avec --preserve=all, les attributs de date et d'heure de CERTAINS répertoires de destination n'ont pas été préservés.

Le lien suivant semble confirmer qu'il s'agit d'un bug: bug#8767: cp: --preserve=all ne fonctionne pas pour les parents lorsque --parent est utilisé.

Il semble donc que vous ne puissiez pas vous fier à ce que les attributs soient préservés lorsque vous utilisez --parents avec des options telles que --preserve=all ou -p.

-2voto

sys0dm1n Points 1

J'ai utilisé --parents avec la commande cp et cela a parfaitement fonctionné pour moi. Pour plus de détails, consultez toujours le manuel. Merci.

3 votes

Ne rajoute rien aux 5 autres réponses.

0 votes

Les répondeurs doivent noter que le fichier .project dans Eclipse est un fichier, non un répertoire. Par exemple, mkdir -p a/.project n'a aucun sens.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X