Rechercher : dans
Par :

[Shell] recopier le contenu d'un dossier.

Dernière réponse le 27 mai 2007 à 14:26:33 devtroll, le 26 mai 2007 à 13:15:22 
 Signaler ce message aux modérateurs

Bonjour,

Je cherche un creer un shell qui copie le contenu d'un repertoire vers un autre. En prenant en compte les fichier cache "."

Quelqun à une idée ... ou un lien?

Configuration: Windows XP
Firefox 2.0.0.3

Meilleures réponses pour « [Shell] recopier le contenu d'un dossier. » dans :
[Windows] Obtenir la liste des fichiers d'un dossier Voir Lister le contenu d'un dossier Voici une astuce simple qui permet de lister le nom des fichiers contenus dans un répertoire. Vous pourrez obtenir en un clic les titres de vos chansons, de vos photos, etc. dans un fichier...
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Linux - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système...
Windows 7 - Dossiers et fichiers VoirExplorez votre PC : dossiers et fichiers Tous les fichiers nécessaires au fonctionnement de votre ordinateur, qu’il s’agisse de ceux de Windows, des logiciels installés ou des périphériques que vous utilisez, ainsi que vos fichiers personnels, sont...

1

jipicy, le 26 mai 2007 à 13:25:26

Salut,

for i in $(ls -a /chemin/rep); do cp "$i" /new/rep/ ; done
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

lami20j, le 26 mai 2007 à 13:51:03

Salut,

lit man cp pour voir toutes les options de la commande cp

lami20j@debian:~/trash$ ls -al rep
total 24
drwxr-xr-x  2 lami20j lami20j  4096 2007-05-26 13:53 .
drwxr-xr-x 33 lami20j lami20j 20480 2007-05-26 13:55 ..
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:53 a
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:53 aa
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:53 aaa
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:53 .b
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:53 .bb
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:53 .bbb
lami20j@debian:~/trash$ ls -al newrep
ls: newrep: Aucun fichier ou répertoire de ce type
lami20j@debian:~/trash$ cp -vR rep newrep
`rep' -> `newrep'
`rep/.bbb' -> `newrep/.bbb'
`rep/aa' -> `newrep/aa'
`rep/a' -> `newrep/a'
`rep/aaa' -> `newrep/aaa'
`rep/.bb' -> `newrep/.bb'
`rep/.b' -> `newrep/.b'
lami20j@debian:~/trash$ ls -al newrep
total 24
drwxr-xr-x  2 lami20j lami20j  4096 2007-05-26 13:55 .
drwxr-xr-x 34 lami20j lami20j 20480 2007-05-26 13:55 ..
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:55 a
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:55 aa
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:55 aaa
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:55 .b
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:55 .bb
-rw-r--r--  1 lami20j lami20j     0 2007-05-26 13:55 .bbb

lami20j

Répondre à lami20j

3

devtroll, le 26 mai 2007 à 14:04:42

En fait j'avais deja testé une methode comme ça mais avec un -Ra mais j'ai toujours le meme probleme...

mkdir /home/$utilisateur/
for i in $(ls -a /etc/skel)
do
cp $i /home/$utilisateur/
done

Ce qui me donne pas mal d'erreur du genre :
cp: ne peut evaluer '.infobash' : Aucun fichier ou répertoire de ce type

sinon lami ta methode est bien... mais le probleme c'est que je ne veut pas fair un copier coller du dossier mais juste de son contenue.

Répondre à devtroll

4

dubcek, le 26 mai 2007 à 14:21:04

Mkdir /home/$utilisateur/
cd /etc/skel ; tar -cf - . | (cd /home/$utilisateur ; tar -xvf -)

Répondre à dubcek

5

lami20j, le 26 mai 2007 à 14:37:01

Une autre possibilité

lami20j@debian:~/trash$ mkdir newrep
lami20j@debian:~/trash$ ls -A1 rep
a
aa
aaa
.b
.bb
.bbb
lami20j@debian:~/trash$ ls -A1 rep  | xargs -I fic cp -v rep/fic newrep/
`rep/a' -> `newrep/a'
`rep/aa' -> `newrep/aa'
`rep/aaa' -> `newrep/aaa'
`rep/.b' -> `newrep/.b'
`rep/.bb' -> `newrep/.bb'
`rep/.bbb' -> `newrep/.bbb'
lami20j@debian:~/trash$ ls -A1 newrep/
a
aa
aaa
.b
.bb
.bbb
lami20j

Répondre à lami20j

6

lami20j, le 26 mai 2007 à 14:39:31

Dans ton cas

$ mkdir newrep
$ ls -A1 /etc/skel  | xargs -I fic cp -v /etc/skel/fic newrep/
`/etc/skel/.bash_logout' -> `newrep/.bash_logout'
`/etc/skel/.bash_profile' -> `newrep/.bash_profile'
`/etc/skel/.bashrc' -> `newrep/.bashrc'
$ ls -A1 newrep/
.bash_logout
.bash_profile
.bashrc

lami20j

Répondre à lami20j

7

devtroll, le 26 mai 2007 à 14:55:51

Yes ça marche merci tout le monde ! Dite par hazard quand je copie les fichier je le fait en root, c'est possible que malgré que je lance ce shell en root que le proprietaire et le groupe des fichiers et dossiers ne soit pas root ?

Répondre à devtroll

8

lami20j, le 26 mai 2007 à 14:59:15

Je ne suis pas sur d'avoir compris ta question.
En revanche tu peux toujours modifier les droits avec chmod lami20j

Répondre à lami20j

9

devtroll, le 26 mai 2007 à 15:41:25

Euh.. he bien est que je doit traité mes fichier et dossier un par un avc des chgrp et chown ou je peu directement qand je fait par exemple (cd /home/$utilisateur ; tar -xvf -) mettre comme proprietaire $utilisateur et come groupe "users" ?

Répondre à devtroll

10

lami20j, le 26 mai 2007 à 16:39:12

Euh.. he bien est que je doit traité mes fichier et dossier un par un avc des chgrp et chown
Non, pas du tout :-)
Tu as l'option -R pour le mode recursif
-v c'est pour verbose (c'est à dire que tu verras à l'écran ce que la commande fait)

chown -vR proprietaire:groupe /chemin/vers/repertoire
lami20j

Répondre à lami20j

11

devtroll, le 26 mai 2007 à 17:27:49

OK je te remercie !

Alors pour recopiez le contenue d'un repertoire :

mkdir /home/$utilisateur/ 
cd /etc/skel ; tar -cf - . | (cd /home/$utilisateur ; tar -xvf -)


puis pour modifier le proprietaire des fichier nouvelement copié :

chown -R $NUSER:"users" /home/$NUSER
chown $NUSER:"users" /home/$NUSER


Voila encore merci!

Répondre à devtroll

12

dubcek, le 27 mai 2007 à 14:22:05

Avec tar, il faut utiliser l'option -p pour garder le bon proprio:
mkdir /home/$utilisateur/
cd /etc/skel ; tar -cf - . | (cd /home/$utilisateur ; tar -xpvf -)

Répondre à dubcek

13

 lami20j, le 27 mai 2007 à 14:26:33
  • +2

Salut,

pour cp c'est la même option -p

lami20j@debian:~$ ls -al /etc/skel/
total 12
drwxr-xr-x   2 root root 1024 2003-08-11 10:19 .
drwxr-xr-x 122 root root 6144 2007-05-27 18:06 ..
-rw-r--r--   1 root root  220 2006-12-11 22:20 .bash_logout
-rw-r--r--   1 root root  414 2006-12-11 22:20 .bash_profile
-rw-r--r--   1 root root 2227 2006-12-11 22:20 .bashrc
lami20j@debian:~$ mkdir newrep
lami20j@debian:~$ ls -A1 /etc/skel  | xargs -I fic cp -pv /etc/skel/fic newrep/
`/etc/skel/.bash_logout' -> `newrep/.bash_logout'
`/etc/skel/.bash_profile' -> `newrep/.bash_profile'
`/etc/skel/.bashrc' -> `newrep/.bashrc'
lami20j@debian:~$ ls -al newrep/
total 28
drwxr-xr-x   2 lami20j lami20j  4096 2007-05-27 18:31 .
drwxr-xr-x 126 lami20j lami20j 12288 2007-05-27 18:31 ..
-rw-r--r--   1 lami20j lami20j   220 2006-12-11 22:20 .bash_logout
-rw-r--r--   1 lami20j lami20j   414 2006-12-11 22:20 .bash_profile
-rw-r--r--   1 lami20j lami20j  2227 2006-12-11 22:20 .bashrc
lami20j

Répondre à lami20j
Collection CommentÇaMarche.net