Signaler

Copie de fichiers

Posez votre question Rius93 4Messages postés vendredi 11 août 2017Date d'inscription 12 août 2017 Dernière intervention - Dernière réponse le 13 août 2017 à 08:29 par zipe31
Bonjour,

J'ai actuellement un dossier avec plusieurs fichier dedans:

- test1.txt
- test2.txt
- test3.txt

J'ai un fichier avec des liens:

- /dossier1/sousdossier1/test1.txt
- /dossier1/sousdossier2/test2.txt
- /dossier2/sousdossier1/test3.txt

Comment pourrais-je faire pour copier tous les fichiers qui sont dans le même dossier en fonction du fichier avec les liens ?

J'espère avoir été clair.

Merci beaucoup
Afficher la suite 
Utile
+0
plus moins
Salut,
J'espère avoir été clair.
Oui, mais ça manque cruellement de précision ;-\
J'ai actuellement un dossier avec plusieurs fichier
Comment s'appelle-t-il ? Où se trouve-t-il ?
J'ai un fichier avec des liens
Où se trouve-t-il ?
/dossier1/sousdossier1/
Où se trouve "dossier1" (chemin complet) ?
/dossier2/sousdossier1/
Où se trouve "dossier2" (chemin complet) ?

Donnez votre avis
Utile
+0
plus moins
Voici un exemple de ce qui se trouve dans mon fichier texte (j'ai environs 660 lignes :) )
Ce fichier texte est dans /home/rius/ mais je peut le bouger en cas de besoin

/home/rius/MTL/IVAO_MTL/IVAO_A10/model/RWAI A-10C_Empty.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A124/model/An-124-100.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A148/model/SBAI_An-148.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A148/model.158/SBAI_An-158.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A225/model/GAI_AN225_B.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A306/model.GE/TFS_A300-600_GE.mdl

Tous les fichiers qui sont dans le fichier texte existe déjà.

Dans le dossier /home/rius/NEW_MTL/ j'ai les fichiers:
- RWAI A-10C_Empty.mdl
- An-124-100.mdl
- SBAI_An-148.mdl
- SBAI_An-158.mdl
- GAI_AN225_B.mdl
- TFS_A300-600_GE.mdl

Ce que je recherche à faire, c'est copier tous les fichiers qui sont dans le dossier /home/rius/NEW_MTL/ pour qu'ils remplacent ceux qui sont dans le fichier texte

Exemple:

Le fichier /home/rius/NEW_MTL/RWAI A-10C_Empty.mdl doit remplacer le fichier /home/rius/MTL/IVAO_MTL/IVAO_A10/model/RWAI A-10C_Empty.mdl
Le fichier An-124-100.mdl doit remplacer le fichier /home/rius/MTL/IVAO_MTL/IVAO_A124/model/An-124-100.mdl
zipe31 34850Messages postés dimanche 7 novembre 2010Date d'inscription ContributeurStatut 17 août 2017 Dernière intervention - 11 août 2017 à 16:09
À tester sur un petit bout de fichier. Le script tu le mets où tu veux (tant qu'à faire avec le le fichier à lire).

Si le résultat de la commande
echo cp blabla…  blabla…
est bon, tu supprimes le "
echo
" et les guillemets, mais tu rajoutes des guillemets autour des variables ${fich} et ${line} (
cp -v /home/rius/NEW_MTL/"${fich}" "${line}"
).

$ cat fich 
/home/rius/MTL/IVAO_MTL/IVAO_A10/model/RWAI A-10C_Empty.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A124/model/An-124-100.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A148/model/SBAI_An-148.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A148/model.158/SBAI_An-158.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A225/model/GAI_AN225_B.mdl
/home/rius/MTL/IVAO_MTL/IVAO_A306/model.GE/TFS_A300-600_GE.mdl


$ cat script_cp.sh 
#! /bin/bash

while read line
do
fich="${line##*/}"
echo "cp /home/rius/NEW_MTL/${fich} ${line}"
done < fich


$ ./script_cp.sh 
cp /home/rius/NEW_MTL/RWAI A-10C_Empty.mdl /home/rius/MTL/IVAO_MTL/IVAO_A10/model/RWAI A-10C_Empty.mdl
cp /home/rius/NEW_MTL/An-124-100.mdl /home/rius/MTL/IVAO_MTL/IVAO_A124/model/An-124-100.mdl
cp /home/rius/NEW_MTL/SBAI_An-148.mdl /home/rius/MTL/IVAO_MTL/IVAO_A148/model/SBAI_An-148.mdl
cp /home/rius/NEW_MTL/SBAI_An-158.mdl /home/rius/MTL/IVAO_MTL/IVAO_A148/model.158/SBAI_An-158.mdl
cp /home/rius/NEW_MTL/GAI_AN225_B.mdl /home/rius/MTL/IVAO_MTL/IVAO_A225/model/GAI_AN225_B.mdl
cp /home/rius/NEW_MTL/TFS_A300-600_GE.mdl /home/rius/MTL/IVAO_MTL/IVAO_A306/model.GE/TFS_A300-600_GE.mdl
Répondre
Donnez votre avis
Utile
+0
plus moins
Merci beaucoup, je vais tester ton script ce soir en rentrant.
Je te tiens au courant
Donnez votre avis
Utile
+0
plus moins
Ton script fonctionne à merveille :) Merci beaucoup

Mais j'ai un petit soucis.
Lorsque j'ai converti en automatique les fichiers avec le logiciel MCX, il a renommer un peu les fichiers.
Ex: rwai a-10c_empty.mdl au lieu de RWAI A-10C_Empty.MDL

Comment pourrais faire pour renommer tous les fichiers en fonction du fichier "fich" dans ton dernier post ?

J'ai essayer de comprendre ton script, mais j'ai un peu de mal

Merci
zipe31 34850Messages postés dimanche 7 novembre 2010Date d'inscription ContributeurStatut 17 août 2017 Dernière intervention - 13 août 2017 à 08:29
Les fichiers à convertir se trouvent où ?
Tous dans le même répertoire, ou bien dans des répertoires différents ?

Pour t'aider dans la compréhension du script :

À partir d'une variable
line="/home/rius/MTL/IVAO_MTL/IVAO_A10/model/RWAI A-10C_Empty.mdl"
:

nom="${line##*/}"
renverra ce qui se trouve après le dernier "/" (slash)
chemin="${line%/*}"
renverra ce qui se trouve avant le dernier "/" (slash)
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !