Téléchargement
illégal
Posez votre question Signaler

[Shell Unix] Copier/Déplacer, question

nerique - Dernière réponse le 22 nov. 2006 à 09:17
Bonjour,
tout d'aord merci pour votre temps. je suis loin d'être expert en shell Unix, et j'ai un petit questionnement.
j'utilise actuellement la commande
cp -rf /data0/test/ftp_clients/pascal/images/* /data0/test/_content/images/waiting/toresize/
Cette commande copie tous les fichiers contenus dans les sou répertoires de images, vers les mêmes sous répertoires de toresize.
Je souhaiterai, au lieu de copier, déplacer les fichiers. Toutefois, j'ai peur qu'en rempacant juste le cp par le mv, les sous-répertoires de images soient aussi déplacés et que je perde mon arborescence dans images.
Quelqu'un pourrait-il me donner une réponse ou filer un coup de main ?
Merci beaucopup,
Lire la suite 

[Shell Unix] Copier/Déplacer, question »

4 réponses
Réponse
+0
moins plus
Salut,

je n'ai pas testé.
essaie d'abord sur une arborescence de test

par exemple tu fait
mkdir -p $HOME/image_test/{a,b,c,d}
mkdir $HOME/image_destination

touch $HOME/image_test/a/{aa,bb,cc}
touch $HOME/image_test/b/{aa,bb,cc}
touch $HOME/image_test/c/{aa,bb,cc}

find $HOME/image_test -type f -exec mv {} $HOME/image_destination \;


Et voilà la commande
find /data0/test/ftp_clients/pascal/images/ -type f exec mv {} /data0/test/_content/images/waiting/toresize/ \;


Au lieu de -type f tu peux utiliser -name '*.jpg' par exemple

lami20j
Nerique - 21 nov. 2006 à 16:18
Bonjuur, et merci pour ta réponse. Ton script est un très bon début, toutefois, lors du déplacement, il ne met pas les images images_test/aa/* dans images_destination/aa/* mais dans images_destination, le tout à la racine

Une idée?

Merci
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

SI on s'en réfère au "man mv" :
DESCRIPTION
       mv déplace ou renomme des fichiers ou des répertoires.

       Si le dernier argument est le nom d'un répertoire existant, mv  placera
       tous  les autres fichiers à l'intérieur de ce répertoire, en conservant
       leurs noms.  Sinon, s'il n'y a que deux fichiers indiqués, il renommera
       le  premier  pour  remplacer le second.  Une erreur se produit s'il y a
       plus de deux fichiers indiqués et si le dernier argument n'est  pas  un
       répertoire.

       Ainsi, `mv /a/x/y /b' va renommer le fichier /a/x/y en /b/y si /b était
       un répertoire déjà existant, et en /b sinon.
Ce que tu veux faire n'est pas possible, et seul une copie avec "cp" suivie d'un "rm" devrait faire l'affaire.

Mais bon, peut être quelqu'un a-t'il la solution à ton problème...

;-))
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

merci pour ta réponse très claire et précise, je vais donc faire un cp puis un rm .... c'est quand même dommage d'en arriver là :)

Bonne journée,
Ajouter un commentaire
Ce document intitulé « [Shell Unix] Copier/Déplacer, question » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?