[Shell Unix] Copier/Déplacer, question
nerique
-
Nerique -
Nerique -
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,
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,
3 réponses
-
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...
;-)) -
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, -
Salut,
je n'ai pas testé.
essaie d'abord sur une arborescence de test
par exemple tu faitmkdir -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 commandefind /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