Précédent   Forum des professionnels en informatique > Systèmes > Linux > Distributions > Ubuntu
Ubuntu Vos questions sur les distributions Ubuntu et dérivées (Kubuntu, Xubuntu... )
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 23/11/2009, 00h02   #1
Membre du Club
 
Inscription : novembre 2008
Messages : 270
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 270
Points : 50
Points : 50
Par défaut Déplacer des fichiers

Bonjour,

Je voudrais savoir quelle commande me permet de déplacer des fichiers dans un autre répertoire. Je dis bien des fichiers. Par exemple, si dans le répertoire A j'ai des répertoires B et C et des fichiers a, b et c je veux déplacer les fichiers a, b et c (sans toucher aux répertoires B et C) dans un autre répertoire en une seule commande. Sous Fedora c'est la commande mv -S A/* Rep_destination qui fait l'affaire. Mais sous Ubuntu cette commande n'a pas fonctionné.
Est-ce que vous savez comment faire ?
yo_haha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 09h57   #2
Modérateur
 
Avatar de duf42
 
Homme
Formateur en informatique
Inscription : novembre 2007
Messages : 2 312
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2007
Messages : 2 312
Points : 2 910
Points : 2 910
Bonjour,

As-tu essayé avec la commande cp?

Bonne journée,
Duf
__________________
Modérateur MATLAB

Au boulot : Windows 7 , MATLAB 7.12 (r2011a)
A la maison : ArchLinux mais pas MATLAB
duf42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 10h41   #3
Membre expérimenté
 
Avatar de cboudy
 
Ingénieur informatique industrielle
Inscription : avril 2006
Messages : 381
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur informatique industrielle

Informations forums :
Inscription : avril 2006
Messages : 381
Points : 525
Points : 525
il y peut-être une différence de version de mv entre les deux distros ou un alias qui traine,
que donnent : et ?

c'est un peu tordu mais tu peux faire un :
Code :
find A -type f -maxdepth 1 -exec mv {} Rep_destination \;
cboudy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 14h49   #4
Membre du Club
 
Inscription : novembre 2008
Messages : 270
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 270
Points : 50
Points : 50
A duf42 : En fait, je veux couper et coller en une seule commande.

A cboudy : Je n'ai pas Ubuntu sur mon pc mais je vais essayer ta proposition le plus tôt possible. Merci !
yo_haha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 15h17   #5
Membre éprouvé
 
Avatar de paissad
 
Homme
Étudiant
Inscription : avril 2006
Messages : 316
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 316
Points : 444
Points : 444
Envoyer un message via Skype™ à paissad
Bonjour
si tu veux faire couper coller, il faut que tu changes la commande cp par mv
et je te conseille de mettre des guillemets entre les accolades si jamais il y'a des espaces dans tes noms de fichiers
Code :
find A -type f -maxdepth 1 -exec mv "{}" \;
Bien cordialement
__________________
Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
Slackware for the Subgenius !
http://blog.paissad.net
paissad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 17h43   #6
Membre du Club
 
Inscription : novembre 2008
Messages : 270
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 270
Points : 50
Points : 50
A quoi servent les accolades dans cette commande ?
Est-ce que les options de cette commande sont spécifiques à Ubuntu ou bien à toutes les distributions ?
yo_haha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 18h10   #7
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 703
Points : 4 346
Points : 4 346
Bonsoir.

Tu peut faire un script Bash que tu copie dans ~/bin par exemple. Il suffit de récupérer la sortie de la commande ls et de vérifier s'il s'agit d'un fichier texte (ou vérifier qu'il ne s'agit pas d'un répertoire).

Un petit exemple rapide :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#!/bin/sh
echo "répertoire d'origine ?"
read rep1
cd $rep1
echo "répertoire de sortie ?"
read rep2
for i in `ls`
do
        if [ -f $i ]
        then
                mv $i $rep2
        fi
done

Dernière modification par ok.Idriss ; 23/11/2009 à 18h51. Motif: correction script
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 18h40   #8
Membre du Club
 
Inscription : novembre 2008
Messages : 270
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 270
Points : 50
Points : 50
C'est intéressant merci. Mais je cherche une commande sans rentrer dans un script.
yo_haha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 19h08   #9
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 703
Points : 4 346
Points : 4 346
Tu peut créer ta propre commande :

1) Tu écris ce script :

Code :
1
2
3
4
5
6
7
8
9
#!/bin/sh
cd $1
for i in `ls`
do
        if [ -f $i ]
        then
                mv $i $2
        fi
done
2) chmod +x NomDuScript
3) mv NomDuScript ~/bin. Pour que ce script soit acessible à toutes session ... déplace dans /usr/bin plutôt que ~/bin.

4) Tu peut ensuite l'utiliser comme ceci :

Code :
[ ~] NomDuScript /home/toi/rep1 /home/toi/rep2
ça copiera tout les fichiers standard de rep1 dans rep2. C'est comme une commande.
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 19h27   #10
Membre du Club
 
Inscription : novembre 2008
Messages : 270
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 270
Points : 50
Points : 50
Merci
yo_haha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 19h28   #11
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 703
Points : 4 346
Points : 4 346
De rien . Résolu ?
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 19h29   #12
Membre du Club
 
Inscription : novembre 2008
Messages : 270
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 270
Points : 50
Points : 50
Citation:
Envoyé par paissad Voir le message
Bonjour
si tu veux faire couper coller, il faut que tu changes la commande cp par mv
et je te conseille de mettre des guillemets entre les accolades si jamais il y'a des espaces dans tes noms de fichiers
Code :
find A -type f -maxdepth 1 -exec mv "{}" \;
Bien cordialement
A quoi servent les accolades ?
yo_haha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 19h43   #13
Membre expérimenté
 
Avatar de cboudy
 
Ingénieur informatique industrielle
Inscription : avril 2006
Messages : 381
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Ingénieur informatique industrielle

Informations forums :
Inscription : avril 2006
Messages : 381
Points : 525
Points : 525
les options de find sont standard
les accolades servent à identifier ou est placé chaque fichier trouvé par find dans la commande identifiée par exec (c.a.d. mv "{}" Rep_destination)
le \; identifie la fin de la commande exec
en gros pour chaque fichier a, b, c, exec fera :
Code :
1
2
3
mv "a" Rep_destination
mv "b" Rep_destination
mv "c" Rep_destination
-type f signifie qu'on ne traite que les fichiers
-maxdepth 1 signifie qu'on se limite à une profondeur de 1 lors du parcours des sous-répertoires
cboudy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2009, 20h15   #14
Membre éprouvé
 
Avatar de paissad
 
Homme
Étudiant
Inscription : avril 2006
Messages : 316
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 316
Points : 444
Points : 444
Envoyer un message via Skype™ à paissad
Citation:
A quoi servent les accolades ?
si tu fais un
Code :
mv 50 Cent.mp3 /rep/destinatin
tu auras une erreur car mv essaiera de copier 2 fichiers qui n'existent pas ,notament L'erreur vient du fait qu'il y'a une espace dans le nom de fichier
Si tu fais
Code :
mv "50 Cent.mp3 /rep/destination
tu n'auras pas d'erreur car mv voit le fichier 50 Cent.mp3 à cause des accolades qui conservent l'espace
t'aurais pû faire aussi
Code :
mv 50\ Cent.mp3 /rep/destination
mais bon cette dernière commande est moins appropriée pour find
Cordialement
__________________
Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
Slackware for the Subgenius !
http://blog.paissad.net
paissad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 19h01   #15
Modérateur
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 703
Points : 4 346
Points : 4 346
Bonsoir.

@ yo_haha : Si c'est le cas (et ça semble l'être), n'oublies pas de mettre en résolu

=>
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2009, 22h54   #16
Membre du Club
 
Inscription : novembre 2008
Messages : 270
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 270
Points : 50
Points : 50
Merci beaucoup les gars !
yo_haha 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 +1. Il est actuellement 10h16.


 
 
 
 
Partenaires

Hébergement Web