A voir également:
- Ligne de commande pour copier des fichiers
- Invite de commande - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
- Commande terminal mac - Guide
- Aller à la ligne excel - Guide
7 réponses
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
28 oct. 2009 à 18:51
28 oct. 2009 à 18:51
Bonjour,
et ...../test*/* ......., ça ne le fait pas ?
et ...../test*/* ......., ça ne le fait pas ?
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
28 oct. 2009 à 18:55
28 oct. 2009 à 18:55
Salut,
Un truc du genre devrait le faire :
Un truc du genre devrait le faire :
for name in /home/*;do cp -r ${name}/Desktop/* /mnt/test;done
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
mimi51340
28 oct. 2009 à 20:15
28 oct. 2009 à 20:15
Affiche le résultat de :
ls ~
mimi51340
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
28 oct. 2009 à 20:24
28 oct. 2009 à 20:24
Dans quel répertoire dois-je taper ls ~ ?
Car en essayant dans home par exemple, rien ne s'affiche.
Merci encore de l'aide.
Car en essayant dans home par exemple, rien ne s'affiche.
Merci encore de l'aide.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
mimi51340
28 oct. 2009 à 20:28
28 oct. 2009 à 20:28
N'importe où !
Normalement le tilde "~" est un raccourci pour /home/$USER
Essaye de taper :
Normalement le tilde "~" est un raccourci pour /home/$USER
Essaye de taper :
ls /home/$USER
mimi51340
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
28 oct. 2009 à 20:31
28 oct. 2009 à 20:31
Donc si je tape exactement ls /home/$USER, j'ai cette erreur:
ls: ne peut accéder /home/root: Aucun fichier ou répertoire de ce type
Je ne sais pas si c'est ce qu'il fallait taper
Mais si je tape /home/jeremy (qui est mon nom d'utilisateur), alors là j'ai le répertoire Desktop qui s'affiche.
Merci.
ls: ne peut accéder /home/root: Aucun fichier ou répertoire de ce type
Je ne sais pas si c'est ce qu'il fallait taper
Mais si je tape /home/jeremy (qui est mon nom d'utilisateur), alors là j'ai le répertoire Desktop qui s'affiche.
Merci.
Utilisateur anonyme
28 oct. 2009 à 20:42
28 oct. 2009 à 20:42
Salut :)
Je peux essayer?
?
ou
"Mais je voudrais copier ce qu'il y dans /home/test/Desktop puis /home/test1/Desktop puis /home/test3/Desktop .... par exemple. Comment faire ? "
J'ai peut être tout faut mais la solution m'intrigue :)
Je peux essayer?
find Desktop/* -type d -exec cp -vfR {} \; /mnt/test
?
ou
"Mais je voudrais copier ce qu'il y dans /home/test/Desktop puis /home/test1/Desktop puis /home/test3/Desktop .... par exemple. Comment faire ? "
cp -vfR /home/{test1,test2,test3}/Desktop /mnt/Desktop
J'ai peut être tout faut mais la solution m'intrigue :)
lorsque je fais
find Desktop/* -type d -exec cp -vfR {} \; /mnt/test
voici l'erreur:
find: paths must precede expression: /mnt/testlinux
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
En faite j'exécute ces lignes de commande dans un script.
Voici le script en entier (je monte d'abor un lecteur réseau):
# ! /bin/bash.
mount -t cifs //192.168.1.50/public/testlinux /mnt/testlinux -o username=admin,password=fr7ahfgf
find Desktop/* -type d -exec cp -vfR {} \; /mnt/testlinux
umount /mnt/testlinux
Peut-être qu'il y'aurait un problème en exécutant l'ensemble ?
En tout cas sans rajouter la ligne et en faisant juste une copie d'un seul répertoire je n'ai pas de problème ça fonctionne très bien.
Merci.
find Desktop/* -type d -exec cp -vfR {} \; /mnt/test
voici l'erreur:
find: paths must precede expression: /mnt/testlinux
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
En faite j'exécute ces lignes de commande dans un script.
Voici le script en entier (je monte d'abor un lecteur réseau):
# ! /bin/bash.
mount -t cifs //192.168.1.50/public/testlinux /mnt/testlinux -o username=admin,password=fr7ahfgf
find Desktop/* -type d -exec cp -vfR {} \; /mnt/testlinux
umount /mnt/testlinux
Peut-être qu'il y'aurait un problème en exécutant l'ensemble ?
En tout cas sans rajouter la ligne et en faisant juste une copie d'un seul répertoire je n'ai pas de problème ça fonctionne très bien.
Merci.
l'autre fonctionne mais problème: il me copie tout vers un dossier qui s'appelle Desktop.
Hors je voudrais que ça copie dans un dossier portant le nom de l'utilisateur (comme si je copiais tout le répertoire home).
De plus je ne pourrais pas mettre en argument chaque nom d'utilisateur comme tu as fait {test, test1, test2} car j'ai plusieurs centaines d'utilisateurs.
Mais ça avance merci pour l'aide.
Donc tout d'abord y'a-t-il possibilité de copier les fichiers vers un répertoire portant le nom de l'utilisateur ?
Merci.
Hors je voudrais que ça copie dans un dossier portant le nom de l'utilisateur (comme si je copiais tout le répertoire home).
De plus je ne pourrais pas mettre en argument chaque nom d'utilisateur comme tu as fait {test, test1, test2} car j'ai plusieurs centaines d'utilisateurs.
Mais ça avance merci pour l'aide.
Donc tout d'abord y'a-t-il possibilité de copier les fichiers vers un répertoire portant le nom de l'utilisateur ?
Merci.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
28 oct. 2009 à 21:12
28 oct. 2009 à 21:12
Et :
renvoie quoi ?
ls /home/
renvoie quoi ?
c'est bon ta commande fonctionne: for name in /home/*;do cp -rvf ${name}/Desktop/* /mnt/testlinux;done
je ne sais pas pourquoi ça fonctionne maintenant.
Mais juste un petit problème j'ai une erreur: cp: ne peut écraser le répertoire `/mnt/testlinux/test' par un non-répertoire
De plus tous les fichiers de tous les utilisateurs sont copiés directement dans le répertoire testlinux alors que je voudrais copier les fichiers dans un répertoire correspondant à l'utlisateur (dans testlinux)
Merci encore.
je ne sais pas pourquoi ça fonctionne maintenant.
Mais juste un petit problème j'ai une erreur: cp: ne peut écraser le répertoire `/mnt/testlinux/test' par un non-répertoire
De plus tous les fichiers de tous les utilisateurs sont copiés directement dans le répertoire testlinux alors que je voudrais copier les fichiers dans un répertoire correspondant à l'utlisateur (dans testlinux)
Merci encore.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
28 oct. 2009 à 21:53
28 oct. 2009 à 21:53
Ok, je venais justement de refaire le test...
Donc rajoute/modifie la partie en gras :
Donc rajoute/modifie la partie en gras :
for name in /home/*;do cp -Rvp --parents ${name}/Desktop/* /mnt/testlinux;done
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
mimi51340
28 oct. 2009 à 22:09
28 oct. 2009 à 22:09
Regarde les droits sur les dossiers, la copie (en root dans ton cas) sans le flag "-p" ne préserve pas les permissions et de ce fait ils doivent appartenir au "root"...
mimi51340
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 nov. 2009 à 08:50
4 nov. 2009 à 08:50
Bonjour,
Voilà seulement que j'ai le temps de me remettre sur ce petit script.
Donc je dois modifier ma copie car je me suis aperçu que sur le serveur les utilisateurs étaient répertoriés dans /home (puis par ordre alphabétique. Par exemple /home/a/annaelle.garnier ou encore /home/d/daniel.dupont
Donc je voudrais copier les répertoires de tous les utilisateurs comment je peux faire ?
Merci encore pour votre patience.
Voilà seulement que j'ai le temps de me remettre sur ce petit script.
Donc je dois modifier ma copie car je me suis aperçu que sur le serveur les utilisateurs étaient répertoriés dans /home (puis par ordre alphabétique. Par exemple /home/a/annaelle.garnier ou encore /home/d/daniel.dupont
Donc je voudrais copier les répertoires de tous les utilisateurs comment je peux faire ?
Merci encore pour votre patience.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
4 nov. 2009 à 14:07
4 nov. 2009 à 14:07
Essaye ça :
for name in /home/*/*;do mkdir -p /mnt/testlinux/$(basename ${name})/Desktop; cp -Rvp ${name}/Desktop/* /mnt/testlinux/$(basename ${name})/Desktop; done
Bonjour,
Merci pour la réponse.
En faite je pense que ça n'ira pas. Car voilà ce que j'ai dans chaque utlisateur.
Par exemple pour un utilisateur dont la 1ère lettre commende par un d:
/home/d/daniel.dupuis/
Et dans le répertoire daniel.dupuis, là il faut que je copie tout (car j'ai un répertoire devoirs, un répertoire perso, un répertoire profiles ....) Mais il n'y a pas de Desktop. En faite c'est un serveur scribe (je crois que c'est basé sur du debian).
Je voudrais donc copier tout pour chaque utilisateur.
Merci encore.
Merci pour la réponse.
En faite je pense que ça n'ira pas. Car voilà ce que j'ai dans chaque utlisateur.
Par exemple pour un utilisateur dont la 1ère lettre commende par un d:
/home/d/daniel.dupuis/
Et dans le répertoire daniel.dupuis, là il faut que je copie tout (car j'ai un répertoire devoirs, un répertoire perso, un répertoire profiles ....) Mais il n'y a pas de Desktop. En faite c'est un serveur scribe (je crois que c'est basé sur du debian).
Je voudrais donc copier tout pour chaque utilisateur.
Merci encore.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
4 nov. 2009 à 18:30
4 nov. 2009 à 18:30
Ben tu supprimes tous les "Desktop" de la commande :
for name in /home/*/*; do mkdir -p /mnt/testlinux/$(basename ${name}); cp -Rvp ${name}/* /mnt/testlinux/$(basename ${name}); done