Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix > Solaris
Solaris Forum d'entraide sur le système Solaris.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2008, 17h47   #1
Membre régulier
 
Inscription : février 2005
Messages : 283
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 283
Points : 84
Points : 84
Par défaut [sun 5.8] mystère .. enfin pour moi ;-)

Bonjour,

Voici l'objet de mon post, dans un script shell, j'exécute une commande afin de déplacer des fichiers dans un répertoire historique :

Code :
1
2
find $dbname/$rep -name '*.aud' -mtime +5 -exec mv {} histo \;
Or le résultat est assez surprenant :

Avant passage du script :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
[pan:.ora10g]/oradatD31/oratrace/AMBT/adump> ls -l
total 14
-rw-r--r--   1 ora10g   dba          108 Jun 23 17:34 fichier.txt
drwxr-xr-x   2 ora10g   dba          512 Jun 23 17:35 histo
-rw-r-----   1 ora10g   dba          591 Jun 16 03:08 ora_22031.aud
-rw-r-----   1 ora10g   dba          591 Jun 16 03:08 ora_22054.aud
-rw-r-----   1 ora10g   dba          584 Jun 16 03:08 ora_22055.aud
-rw-r-----   1 ora10g   dba          582 Jun 15 23:00 ora_8179.aud
-rw-r-----   1 ora10g   dba          714 Jun 15 23:00 ora_8189.aud
[pan:.ora10g]/oradatD31/oratrace/AMBT/adump> ls -l histo
total 0
[pan:.ora10g]/oradatD31/oratrace/AMBT/adump>
Après passage du script :

Code :
1
2
3
4
5
6
7
8
[pan:.ora10g]/oradatD31/oratrace/AMBT/adump> ls -l
total 4
-rw-r--r--   1 ora10g   dba          108 Jun 23 17:34 fichier.txt
drwxr-xr-x   2 ora10g   dba          512 Jun 23 17:35 histo
[pan:.ora10g]/oradatD31/oratrace/AMBT/adump> ls -l histo
total 0
[pan:.ora10g]/oradatD31/oratrace/AMBT/adump>
Tout se passe comme si j'avais lancé une commande de type :

Code :
1
2
find $dbname/$rep -name '*.aud' -mtime +5 -exec rm {} \;
Ce qui n'est pas le cas ..

Si vous avez une explication, je suis preneur ..

Cdt,
A.Personnat
apersonnat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2008, 21h13   #2
Responsable technique
 
Avatar de Anomaly
 
Homme
Administrateur systèmes et développeur Web
Inscription : juin 2003
Messages : 7 438
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Somme (Picardie)

Informations professionnelles :
Activité : Administrateur systèmes et développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2003
Messages : 7 438
Points : 14 197
Points : 14 197
Code :
find $dbname/$rep -name '*.aud' -mtime +5 -exec mv {} histo \;
Je pense que ton mv a été exécuté relativement au répertoire courant et non pas au dossier du fichier. Du coup, chaque fichier a été renommé respectivement en "histo" dans le répertoire où tu étais quand tu as lancé ton find, chaque "renommage" écrasant le fichier existant, et donc tu vois avoir un fichier "histo" dans ton répertoire courant qui est en fait le dernier de tes fichiers .aud.

Ajouter un "/" après histo aurait permis à "mv" de comprendre que tu voulais déplacer tes fichiers dans un dossier "histo" et non pas renommer et aurait ainsi généré une erreur (dossier histo non existant) au lieu de faire ce massacre.
__________________
Responsable technique forum & site

Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec
Anomaly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 10h34   #3
Membre régulier
 
Inscription : février 2005
Messages : 283
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 283
Points : 84
Points : 84
Bonjour,

Effectivement j'ai bien trouvé un fichier histo contenant le dernier fichier .aud dans mon répertoire courant, logique implacable ;-)

J'ai donc modifié la ligne de commande comme suit :

Code :
1
2
find $dbname/$rep -name '*.aud' -mtime +7 -exec mv {} $dbname/$rep/histo \;
Les fichiers sont bien déplacés dans le répertoire histo mais avec un warning bien que le repertoire histo soit vide :

Code :
1
2
3
4
[pan:.ora10g]/oradatD31/oratrace/AMBT/udump> ll histo
total 0
[pan:.ora10g]/oradatD31/oratrace/AMBT/udump>
Code :
1
2
3
mv: AMBT/udump/histo/ambt_ora_8189.aud and AMBT/udump/histo/ambt_ora_8189.aud are identical
mv: AMBT/udump/histo/ambt_ora_22031.aud and AMBT/udump/histo/ambt_ora_22031.aud are identical
Lorsque j'effectue le même test en placant le répertoire histo au meme niveau que le repertoire de recherche je n'ai pas ce warning ..

Merci beaucoup pour le coup de main ;-)

Cdt,
A.Personnat
apersonnat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h20.


 
 
 
 
Partenaires

Hébergement Web