J'ai des projets Eclipse et un fichier ".project", la structure des répertoires ressemble à ' myProject/.project
'. Je veux copier ces fichiers '.project' dans un autre répertoire, mais je veux que le nom du répertoire qui l'entoure soit préservé.
Disons que j'ai a/myProject/.project
", je veux copier" myProject/.project
sur b
", donc b/myProject/.project
", mais b/myProject
"n'existe pas. Quand j'essaye dans un:
cp -r ./myProject/.project ../b
il copie uniquement le fichier '.project' lui-même, sans le répertoire 'myProject'. S'il vous plaît donnez votre avis.
Commencez
mkdir -p
par créer le dossier de destination avec création de chemin parent récursif. Puis copiez le contenu dans le dossier de destination:la source
Voir
man cp
pour plus d'informations.la source
J'utilise cpio en combinaison avec find. Explication ici .
Exemple pour votre cas d'utilisation:
Cette commande trouve tous les fichiers
/a/myProject/.project/
et les copie, tout en préservant le chemin, tous les fichiers qu’ils contiennent.la source
De plus,
--parents
il est également nécessaire d’ajouter une-r
option pour éviter d’omettre la copie de la plupart des répertoires internes.Donc, la commande qui fonctionne pour moi est
la source
S'il vous plaît être conscient qu'il semble y avoir un bogue dans
cp --parents
. Lorsque j'ai utilisé--parents
avec--preserve=all
, les attributs de date et heure de CERTAINS répertoires de destination n'étaient PAS conservés.Le lien suivant semble confirmer qu'il s'agit d'un bogue: bogue n ° 8767: cp: --preserve = tout ne fonctionne pas pour les parents lorsque --parent est utilisé .
Il semble donc que vous ne pouvez pas compter sur la conservation d'attributs lors de l'utilisation
--parents
de tels que--preserve=all
ou-p
.la source
J'ai utilisé
--parents
avec lacp
commande et travaillé parfaitement avec moi. pour plus de détails, utilisez toujours le manuel. Je vous remercie.la source