Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
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 15/02/2008, 17h35   #1
Membre du Club
 
Inscription : février 2005
Messages : 367
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 367
Points : 64
Points : 64
Par défaut Deplacer fichier vers un repertoire

Bonjour
je voudrais deplacer des fichiers presents dans les repertoires (les repertoires sont presents dans le repertoire courant) vers le repertoire courant

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#!/bin/bash
 
IFS=" "
 
 
for i in $*
  do 
      for fichier in $(ls ./$i)
         do 
            mv $fichier .
 
           done
  done
Mais quand je teste par exemple

commande : r./programme repertoire 1 repertoire2
Citation:
mv: cannot stat fichier1.txt': No such file or directory
sachant que fichier 1 est dans le repertoire1
les 2 repertoires sont dans le repertoire courant

Avez vous une idee de l origine de l erreur

merci
harris_macken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2008, 23h21   #2
Membre éprouvé
 
Avatar de Schmorgluck
 
Inscription : mai 2006
Messages : 349
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : mai 2006
Messages : 349
Points : 435
Points : 435
Yup. Ta variable $fichier ne contient jamais qu'un nom de fichier issu de ls, or ls ne renvoie pas le chemin relatif, mais uniquement le nom terminal.
En l'occurrence et après interpolation, tu essaies d'exécuter
D'où souci.

Avec ça marche déjà mieux.

D'autre part, tu t'embêtes pour rien avec une boucle de trop. mv peut traiter plusieurs fichiers à la fois si c'est pour les changer de répertoire.

Code :
1
2
3
4
5
6
7
#!/bin/bash
IFS=" "
 
for i in $*
do 
    mv $i/* .
done
__________________
There's nothing like $HOME!
Schmorgluck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2008, 03h31   #3
Membre du Club
 
Inscription : février 2005
Messages : 367
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 367
Points : 64
Points : 64
Par défaut trouver fichier identique dans 2 repertoire

bonjour
je voudrait verifier si un fichier est present a la fois dans 2 repertoires

Code :
1
2
3
4
5
6
7
8
9
10
 
for i in repertoire1/* 
do
cd r./epertoire2
  if [ -r $i ] 
  then
      echo i
      cat  repertoire1/$2  >> repertoire2/$i
fi
done
mais il ne m<affiche pas le nom du fichier present dans les 2 repertoires et ne les concatene pas non plus
Une explication ....
harris_macken 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 +2. Il est actuellement 19h30.


 
 
 
 
Partenaires

Hébergement Web