Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash vient d'être divulguée, il est recommandé de mettre à jour son système (plus de détails)

*** 28 sept. nouvelle mise à jour (4.2-2ubuntu2.5 ou 4.3-7ubuntu1.4) *** pour mettre à jour, lancez dans un terminal :
sudo apt-get update ; sudo apt-get upgrade bash

#1 Le 09/05/2010, à 20:42

RayBan

[Résolu]Probléme script avec mv.

Bonjour.

J'ai écrit un petit script, pour pouvoir déplacer automatiquement tout les fichiers .txt
d'un repertoire bien précis, vers une cible dépendant du chemin source.
Cela fonctionne pas mal, mais le dernier fichier n'est jamais déplacé.

Je ne comprends pas pourquoi.
Voici le code :

export PATH_SOURCE="mon REPERTOIRE SOURCE"
export rep="/tmp/mon fichier de contrôle"
export position="0" #position dans ma boucle de déplacement
echo "$(find "$PATH_SOURCE/" -type f -name "*.txt") " > $rep
echo "END" >> $rep #Pour être certain de ne pas renvoyer
            #l'octet signifiant la fin du fichier dans le chemin de ma dernière source

export Nbre="$(wc -l  < "$rep")" #je compte le nombre de ligne de mon fichier 
               #contenant tout les chemins des fichiers .txt de ma source
let Nbre=$Nbre-1   #J'enlève 1( à cause du END) 
          #afin de le réutiliser dans ma boucle de déplacement

while [ "$position" != "$Nbre" ]
do 
let position=$position+1 
echo "*****************************************************************************"
export times=`date +"[20%y-%d-%m][%X]"`

# Récupération de la ligne numéro $position, correspondant a mon chemin source :
export provenance=$(awk -v ro=$position ' NR == ro { print $0}' $rep)

#Formatage de cette ligne, pour déplacement vers cible
export destination="$(echo "$provenance" | cut -d"/" -f7 | cut -d" " -f1-7)"

#DÉPLACEMENT DE SOURCE VERS CIBLE.
mv "$provenance" "$PATH_CIBLE/$destination/$times.txt"

Qui me renvoie:

[doc]
mv: ne peut évaluer `/Répertoire de ma source/Mon Fichier.txt '  : Aucun fichier ou dossier de ce type
[/doc]

Le chemin de la source et de la cible sont OK.
Il y a bien un fichier, et il n'a pas déjà été déplacé.
Alors que les autres fichiers sont bien déplaces.

D'avance Merci.

Dernière modification par RayBan (Le 16/05/2010, à 01:32)

Hors ligne

#2 Le 09/05/2010, à 23:54

RayBan

Re : [Résolu]Probléme script avec mv.

tongue

Dernière modification par RayBan (Le 09/05/2010, à 23:54)

Hors ligne

#3 Le 10/05/2010, à 00:29

twocats

Re : [Résolu]Probléme script avec mv.

Ça m'a l'air super compliqué pour pas grand chose. Pourquoi pas un :

while read LINE
do
    blablabla
done < <(find "$PATH_SOURCE/" -type f -name \*.txt)

La réponse est 42

Hors ligne

#4 Le 10/05/2010, à 00:33

RayBan

Re : [Résolu]Probléme script avec mv.

Merci à vous Twocat.

J'essaierai.
C'est sûrement compliqué pour pas grands chose.
Car je débute totalement en bash.

Merci bien.

Hors ligne

Haut de page ↑