Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2006, 11h55   #1
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Par défaut Copier tout sauf *.svn/*

Bonjour à tous,
j'espère que je suis dans le bon forum, j'aihésité avec programmation.
N'hésitez pas à me déplacer si je me suis planté.
Voilà mon problème :
J'ai un petit script qui fait un certain nombre d'opération, et entre autres qui copie un ensemble de fichiers dans un autre endroit.
Or, le répertoire mydir est sous controle de version (subversion) et donc il me copie aussi tous les fichiers d'administration présent dans chaque répertoire (.svn/).

Ma question est donc : existe-t-il une commande pour lui dire de ne pas copier les fichiers qui ressemblent à *.svn/* ?

Je suis sur que ça doit exister, mais j'avoue que je ne connais que les bases des commandes unix/linux.
Merci d'avance, Nako
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 13h09   #2
Membre Expert
 
Avatar de 2Eurocents
 
Inscription : septembre 2004
Messages : 2 180
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : septembre 2004
Messages : 2 180
Points : 2 442
Points : 2 442
Je ne suis pas sûr qu'il existe des possibilités d'exclusion à la copie de fichier par la commande cp, mais cela reste gérable par la commande find :
Code :
find mydir ! -name "*.svn" -type f -exec cp --parents {} mydest \;
Ainsi, on recherche tous les fichiers qui ne sont pas en .svn et on les copie d'un répertoire à l'autre, en recréant les répertoires parents au besoin ...

Bon courage.
__________________
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 14h06   #3
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Merci pour ta réponse.
Je vais essayer de creuser un peu cette ligne de commande (que j'ai un peu de mal à comprendre !).

Les {}, c'est pour quoi ?
Ca prend pour valeur le résultat du find ? c'est ça ?

Merci, nako.
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 15h04   #4
Membre Expert
 
Avatar de 2Eurocents
 
Inscription : septembre 2004
Messages : 2 180
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : septembre 2004
Messages : 2 180
Points : 2 442
Points : 2 442
Citation:
Envoyé par nako
Les {}, c'est pour quoi ?
Ca prend pour valeur le résultat du find ? c'est ça ?
Oui, c'est ça
__________________
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 15h10   #5
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Ok, merci, c'est bien ce qui me semblait.
Par contre, en tapant la commande que tu m'a donné, il me sort quand même les .svn :
Code :
find /home/nako/dev/proj/ ! -name "*.svn" -type f
me renvoit par exemple :
Code :
1
2
3
4
5
6
7
8
9
/home/nako/dev/proj/readme.txt
/home/nako/dev/proj/modules
/home/nako/dev/proj/modules/.svn
/home/nako/dev/proj/modules/.svn/text-base
/home/nako/dev/proj/modules/.svn/format
/home/nako/dev/proj/modules/module1.txt
/home/nako/dev/proj/modules/module2.txt
/home/nako/dev/proj/modules/module3.txt
etc ...
Si vous voyez ce qui cloche ...
Merci.
,nako
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 15h28   #6
Membre Expert
 
Avatar de 2Eurocents
 
Inscription : septembre 2004
Messages : 2 180
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : septembre 2004
Messages : 2 180
Points : 2 442
Points : 2 442
Citation:
Envoyé par nako
Si vous voyez ce qui cloche ...
Oui, ne connaissant pas subversion, je croyais qu'il s'agissait de fichiers toto.svn, titi.svn, etc. Je ne croyais pas qu'il s'agissait d'un répertoire caché ...

Une solution est de remplacer la recherche par nom par une recherche par motif :
Code :
find /home/nako/dev/proj/ ! -regex ".*/\.svn/.*" -type f ...
Bon courage.
__________________
La FAQ Perl est par ici
: La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2006, 15h55   #7
Membre chevronné
 
Avatar de nako
 
Ingénieur développement logiciels
Inscription : août 2003
Messages : 581
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : août 2003
Messages : 581
Points : 635
Points : 635
Yes ! merci beaucoup, ça marche nickel.
Résolu.
nako est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h48.


 
 
 
 
Partenaires

Hébergement Web