loz
Put something exciting between your legs!
Messages : 7 545 Inscrit le 07/11/01
Ville : Grenoble
Non connecté
|
|
Posté le 23 juin 2005 - 14 h 16 m 22 s |
|
|
C'est hyper lourd !
Je dois copier d'un endroit à un autre à partir d'une liste de fichiers.
Le problème est dans la reconstruction des répertoires (avec les bons droits).
Si je fait cp -a /source/repertoireA/fichierA /destination/repertoireA/fichierA ça marche pas parce que /destination/repertoireA/ n'existe pas.
Si je copie le répertoire, ça copie tous les fichiers contenus même ceux que je veux pas...
Alors je fais une première passe de création des répertoires, mais c'est hyper lourd, parce que pour chaque fichier, (si son répertoire n'existe pas) il faut faire mkdir/chown/chmod pour le répertoire et le répertoire parent et le répertoire grand-parent et tous les aïeux...
Bref ça m'étonne qu'il existe pas en bash un petit utilitaire de manipulation de répertoire...
Dites-moi que ça existe !
|
|
| |
Message édité 1 fois, la dernière par loz le 12 août 2005 - 09 h 24. |
| |
« Vivre simplement, pour que simplement d’autres puissent vivre. » (Gandhi)
|
ballinette
Un Français qui se lève tard !!!
Messages : 25 777 Inscrit le 12/08/02
Ville : un plat pays (mais pas celui de J. Brel)
Non connecté
|
|
Posté le 23 juin 2005 - 16 h 05 m 31 s |
|
|
Et avec tar, ça ne marcherait pas ?
pushd /source
tar cf /tmp/aux.tar repertoireA/fichierA repertoireB/fichierB ...
cd /destination
tar xf /tmp/aux.tar
rm -f /tmp/aux.tar
popd
|
|
|
| |
Message édité 1 fois, la dernière par ballinette le 23 juin 2005 - 16 h 06. |
| |
Dangereux pirate.
|
loz
Put something exciting between your legs!
Messages : 7 545 Inscrit le 07/11/01
Ville : Grenoble
Non connecté
|
|
Posté le 23 juin 2005 - 16 h 24 m 04 s |
|
|
Hélas, tar recréé les répertoires avec le umask courant s'ils n'existent pas déjà...
Et si on les mets dans le tar explicitement, tous les fichiers contenu sont mis avec !
O rage O désespoir...
|
|
| |
« Vivre simplement, pour que simplement d’autres puissent vivre. » (Gandhi)
|
bernie38
Waldorf (le pote à Statler)
Messages : 11 419 Inscrit le 28/08/03
Ville : Claix
Non connecté
|
|
Posté le 23 juin 2005 - 16 h 24 m 38 s |
|
|
Idem que balli, tar est ton ami dans ces cas là !
|
|
| |
La Montagne n'est pas dangereuse : on ne peut qu'y perdre la vie, tandis qu'en ville on devient bête et méchant
Voltaire
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 24 juin 2005 - 09 h 32 m 14 s |
|
|
Je ne vois pas bien ton probleme .. car l'option -a d'apres le man est egal a -dpR donc ca copie telle quelle toute une arborescence ..
Pour faire exister directement toute une hierachie de repertoires
1. <--- f*ck -->
2. come-on$ mkdir -p dad/son/grandson
3. <--- fuc* -->
Et man chown/chmod aussi !
|
|
| |
Message édité 3 fois, la dernière par iraysyvalo le 24 juin 2005 - 09 h 35. |
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
loz
Put something exciting between your legs!
Messages : 7 545 Inscrit le 07/11/01
Ville : Grenoble
Non connecté
|
|
Posté le 24 juin 2005 - 10 h 07 m 23 s |
|
|
Le 24 juin 2005 - 09 h 32, iraysyvalo a écrit :
Je ne vois pas bien ton probleme .. car l'option -a d'apres le man est egal a -dpR donc ca copie telle quelle toute une arborescence ..
|
Sauf que je veux pas tout, je veux uniquement certains fichiers, et les repertoires qui les contiennent (quoique si j'ai des répertoires en trop c'est pas si grave).
Pour faire exister directement toute une hierachie de repertoires
1. <--- f*ck -->
2. come-on$ mkdir -p dad/son/grandson
3. <--- fuc* -->
Et man chown/chmod aussi !
|
Oui mais je veux pas mettre les même droits à dad, son et grandson !
Donc on en revient au même, pour chaque fichier, il faut que j'extraie son pedigree dans une boucle, et que pour chaque ailleul je recrée les droits.
Bref depuis hier je bouffe du sed, et j'ai changé ma signature en conséquence
|
|
| |
« Vivre simplement, pour que simplement d’autres puissent vivre. » (Gandhi)
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 097 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 24 juin 2005 - 11 h 15 m 25 s |
|
|
Sinon, tu peux utiliser Ant avec un build.xml te permettant de faire des filelists...
C'est relativement bien fait et pas trop lourd :
http://ant.apache.org
Je cherche un exemple pour étayer mes dires...
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 097 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 24 juin 2005 - 11 h 17 m 57 s |
|
|
Avec la tâche Copy de Ant :
Examples
Copy a single file
<copy file="myfile.txt" tofile="mycopy.txt"/>
Copy a single file to a directory
<copy file="myfile.txt" todir="../some/other/dir"/>
Copy a directory to another directory
<copy todir="../new/dir">
<fileset dir="src_dir"/>
</copy>
Copy a set of files to a directory
<copy todir="../dest/dir">
<fileset dir="src_dir">
<exclude name="**/*.java"/>
</fileset>
</copy>
<copy todir="../dest/dir">
<fileset dir="src_dir" excludes="**/*.java"/>
</copy>
Copy a set of files to a directory, appending .bak to the file name on the fly
<copy todir="../backup/dir">
<fileset dir="src_dir"/>
<globmapper from="*" to="*.bak"/>
</copy>
Copy a set of files to a directory, replacing @TITLE@ with Foo Bar in all files.
<copy todir="../backup/dir">
<fileset dir="src_dir"/>
<filterset>
<filter token="TITLE" value="Foo Bar"/>
</filterset>
</copy>
Unix Note: File permissions are not retained when files are copied; they end up with the default UMASK permissions instead. This is caused by the lack of any means to query or set file permissions in the current Java runtimes. If you need a permission-preserving copy function, use <exec executable="cp" ... > instead.
|
tiré du manuel Ant http://ant.apache.org/manual/index.html (Rubrique Ant Tasks/Core Tasks)
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
ballinette
Un Français qui se lève tard !!!
Messages : 25 777 Inscrit le 12/08/02
Ville : un plat pays (mais pas celui de J. Brel)
Non connecté
|
|
|
| |
Dangereux pirate.
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 24 juin 2005 - 11 h 31 m 35 s |
|
|
Le 24 juin 2005 - 11 h 17, gege38 a écrit :
Unix Note: File permissions are not retained when files are copied; they end up with the default UMASK permissions instead. This is caused by the lack of any means to query or set file permissions in the current Java runtimes. If you need a permission-preserving copy function, use <exec executable="cp" ... > instead.
|
C'est tres joli mais ca ne le fait toujours pas car ce qu'il veut est tres particulier .. recopier un fichier au meme endroit avec tous les droits originaux dans le chemin qui y mene ....
|
|
| |
Message édité 1 fois, la dernière par iraysyvalo le 24 juin 2005 - 11 h 33. |
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
loz
Put something exciting between your legs!
Messages : 7 545 Inscrit le 07/11/01
Ville : Grenoble
Non connecté
|
|
Posté le 24 juin 2005 - 12 h 00 m 31 s |
|
|
J'allais le dire...
En fait j'espérais trouver une option méconnue de scp ou d'un autre utilitaire, ou un script tout fait qui fait ce genre de chose, mais bon, il ne me reste plus qu'à coder tout ça à la mano...
|
|
| |
« Vivre simplement, pour que simplement d’autres puissent vivre. » (Gandhi)
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 097 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 24 juin 2005 - 12 h 34 m 07 s |
|
|
Le 24 juin 2005 - 11 h 23, ballinette a écrit :
... à condition de vouloir/pouvoir installer Java sur la machine 
|
Ant est totalement indépendant de Java  Il s'agit d'un projet Apache Foundation
Sinon, pour les permissions, désolé mais j'avais compris le contraire (à savoir que tu voulais les perms par défaut...)
En fait, j'ai pas très bien compris ce que tu veux...
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 24 juin 2005 - 13 h 25 m 27 s |
|
|
Le 24 juin 2005 - 12 h 00, loz a écrit :
J'allais le dire...
En fait j'espérais trouver une option méconnue de scp ou d'un autre utilitaire, ou un script tout fait qui fait ce genre de chose, mais bon, il ne me reste plus qu'à coder tout ça à la mano...
|
Ben scp permet aussi de garder les permissions des fichiers/arborescence complete mais le probleme de la creation d'une hierarchie de repertoires + 1 fichier demeure ..
|
|
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 24 juin 2005 - 13 h 26 m 17 s |
|
|
|
|
|
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 097 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 24 juin 2005 - 13 h 33 m 54 s |
|
|
Le 24 juin 2005 - 13 h 26, iraysyvalo a écrit :
A ma connaissance, Ant a besoin de Java puisque fait en Java ???
|
Ant est fait en Java, oui. On peut rajouter des tâches Ant en les codant en Java oui.
Mais il n'y a pas besoin d'une JVM pour pouvoir l'exécuter (enfin il me semble, mais j'en suis quasi-sûr)
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
ballinette
Un Français qui se lève tard !!!
Messages : 25 777 Inscrit le 12/08/02
Ville : un plat pays (mais pas celui de J. Brel)
Non connecté
|
|
Posté le 24 juin 2005 - 13 h 35 m 30 s |
|
|
|
|
|
| |
Dangereux pirate.
|
ballinette
Un Français qui se lève tard !!!
Messages : 25 777 Inscrit le 12/08/02
Ville : un plat pays (mais pas celui de J. Brel)
Non connecté
|
|
|
| |
Dangereux pirate.
|
iraysyvalo
-
Messages : 9 647 Inscrit le 19/11/02
Ville : Lyon
Non connecté
|
|
Posté le 24 juin 2005 - 13 h 39 m 07 s |
|
|
Le 24 juin 2005 - 13 h 33, gege38 a écrit :
Ant est fait en Java, oui. On peut rajouter des tâches Ant en les codant en Java oui.
Mais il n'y a pas besoin d'une JVM pour pouvoir l'exécuter (enfin il me semble, mais j'en suis quasi-sûr)
|
Huh, tu as deja parle de faire des .exe (j'me souviens plus si t'as donne la recette) . Mais la, sans JVM, je vois mal le topo !
|
|
| |
Message édité 1 fois, la dernière par iraysyvalo le 24 juin 2005 - 13 h 39. |
| |
Pour un ban rapide et garanti sur ce forum, argumentez vos posts, dites simplement la verite, parlez de la realite et les leche-culs d'un cote et les maniaques du ban de l'autre se feront un plaisir de vous envoyer au purgatoire aussi sec.
|
gege38
Modérateur
Chief of the (¯`·.__[T3aM.BouL3T©]__.·´¯) Potatoe Reloaded
Messages : 14 097 Inscrit le 05/02/03
Ville : Domène
Non connecté
|
|
Posté le 24 juin 2005 - 13 h 55 m 39 s |
|
|
Je viens de vérifier...
... j'ai honte
Dans le script ant, il y a bien l'appel à la variable JAVA_HOME
Je m'écrase ^_^
M'enfin, ca n'empeche que Ant permet une manipulation de fichiers avancée
Allez hop, je sors
|
|
| |
" Nous plaisons plus souvent dans le commerce de la vie par nos défauts que par nos qualités. "
--La Rochefoucauld
|
nigaiden
Messages : 514 Inscrit le 31/12/02
Ville : Lyon
Non connecté
|
|
Posté le 25 juin 2005 - 11 h 40 m 07 s |
|
|
> Ant permet une manipulation de fichiers avancée
"avancé" est peut-être un peu exagéré  moi je dirai surtout que c'est indépendant de l'OS.
Pour répondre à la question de départ, comme ballinette je trouve que tar est pas mal. Il semble qu'il y a une option (-p) pour préserver les permissions ; c'est ce que tu veux n'est-ce pas ?
Si tu as tous tes fichiers dans une liste, tu peux faire quelque chose comme ce qui suit pour mettre ce que tu veux dans l'archive:
for i in `cat liste_fichiers`; do tar rvf /tmp/archive.tar $i ; done
Note que cela ne marche pas s'il y a des espaces dans les noms de fichiers.
Si c'est pour faire un script d'installation le plus propre est d'utiliser "install" mais dans ton cas je ne crois pas que ce soit d'un grand secours car c'est juste l'équivalent d'un mkdir + chown + chmod. Tu gagnes quelques lignes mais c'est pratiquement la même chose que tu dois saisir.
|
|
| |
|