Rechercher : dans
Par :

[Shell Unix] Copier/Déplacer, question

Dernière réponse le 25 jui 2007 à 22:10:55 nerique, le 16 nov 2006 à 13:53:33 
 Signaler ce message aux modérateurs

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,

Meilleures réponses pour « [Shell Unix] Copier/Déplacer, question » dans :
Déplacer ou copier un dossier grâce au menu contextuel VoirDéplacer ou copier un dossier avec le bouton droit de la souris Une commande utile avec le bouton droit de la souris Pour déplacer ou bien copier un dossier ou un fichier dans un autre emplacement Création d'un fichier .reg pour la base de...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Télécharger CygWin VoirCygwin est un environnement UNIX pour Windows composé: d'un shell Unix d'une librairie dynamique (DLL) chargée de fournir une couche d'émulation Unix pour le système Windows d'un ensemble de librairies, sources et exécutables adaptés à Cygwin...
Systèmes UNIX - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système...
Introduction aux systèmes UNIX VoirLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...

1

lami20j, le 16 nov 2006 à 14:09:33

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

Répondre à lami20j

2

Nerique, le 21 nov 2006 à 16:18: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

Répondre à Nerique

3

jipicy, le 21 nov 2006 à 17:13:22

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...

;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

 Nerique, le 22 nov 2006 à 09:17:28

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,

Répondre à Nerique
Collection CommentÇaMarche.net