France Hardware : Forums de discussion
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
23 592 membres enregistrés - 1 913 544 posts - 99 193 topics
Index des forums FH  | Index des forums DegroupNews
      Systèmes et Logiciels Alternatifs
           FINI Shell : manipuler des répertoires sans leur contenu
31 connectés(record : 272 le 28 octobre 2008 - 04 h 23)

Vous devez vous connecter pour répondre au topic.
1,2 | Suivant
FINI Shell : manipuler des répertoires sans leur contenu

loz
Put something exciting between your legs!

Messages : 7 599
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 852
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.

:sms:


loz
Put something exciting between your legs!

Messages : 7 599
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 427
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
    Code     
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 599
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
    Code     
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
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
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
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
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 852
Inscrit le 12/08/02
Ville : un plat pays (mais pas celui de J. Brel)
Non connecté
  Posté le 24 juin 2005 - 11 h 23 m 31 s


Le 24 juin 2005 - 11 h 15, gege38 a écrit :
Sinon, tu peux utiliser Ant avec un build.xml te permettant de faire des filelists...


ça m'aurait étonné que tu ne vienne pas nous vendre du Java :gne: :mdr:

Cela dit, c'est pas mal, la solution Ant ;)

... à condition de vouloir/pouvoir installer Java sur la machine :jap:



Dangereux pirate.

:sms:


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 599
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
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
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 :jap:


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


Le 24 juin 2005 - 12 h 34, gege38 a écrit :


Le 24 juin 2005 - 11 h 23, ballinette a écrit :

... à condition de vouloir/pouvoir installer Java sur la machine :jap:


Ant est totalement indépendant de Java ;) Il s'agit d'un projet Apache Foundation ;)


A ma connaissance, Ant a besoin de Java puisque fait en Java ???




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
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
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 852
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


Le 24 juin 2005 - 13 h 26, iraysyvalo a écrit :


Le 24 juin 2005 - 12 h 34, gege38 a écrit :
Ant est totalement indépendant de Java ;) Il s'agit d'un projet Apache Foundation ;)

A ma connaissance, Ant a besoin de Java puisque fait en Java ???


C'est exactement où je voulais en venir :jap:



Dangereux pirate.

:sms:


ballinette
Un Français qui se lève tard !!!

Messages : 25 852
Inscrit le 12/08/02
Ville : un plat pays (mais pas celui de J. Brel)
Non connecté
  Posté le 24 juin 2005 - 13 h 36 m 29 s


Le 24 juin 2005 - 13 h 33, gege38 a écrit :
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)


Ben si, justement... ou alors faudrait m'expliquer comment :chepa: :chtarb:

... enfin... on s'égare un peu, là, non ? :hot:



Dangereux pirate.

:sms:


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
- Ancien Modérateur -
Chief of the
(¯`·.__[T3aM.BouL3T©]__.·´¯)
Potatoe Reloaded

Messages : 14 114
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 :rougir:

Dans le script ant, il y a bien l'appel à la variable JAVA_HOME :unhappy:

Je m'écrase ^_^


M'enfin, ca n'empeche que Ant permet une manipulation de fichiers avancée :na:



Allez hop, je sors :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.




1,2 | Suivant
Page genérée en 1.6343 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL |Actualité ADSL | e-commerce | Commande Au Volant
Creative Commons
Message Boards and Forums Directory