Date fichier [script] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 01-04-2008 à 11:19:44
avec find, regarde ses différentes options dans le manpage
Marsh Posté le 01-04-2008 à 15:03:46
o'gure a écrit : avec find, regarde ses différentes options dans le manpage |
+1
En plus, il y a plein de topics ici qui parlent de ça. Par exemple : http://forum.hardware.fr/hfr/OSAlt [...] 6447_1.htm
Marsh Posté le 01-04-2008 à 15:08:37
Merci cela m'a l'air bien puissant comme fonction...
par contre chui pas très bon en script comment de manière générale je peux récupérer et traiter ce que me retourne la fonction... car en console cela me renvoi :
.
./nom_fichier.ext
./nom_fichier2.ext
comment récupérer dans 2 variable les 2 nom de fichier et ignorer le . en première ligne?
Merci
Marsh Posté le 01-04-2008 à 15:16:12
Pour virer les répertoires, il existe d'autres options de find. Un petit tour dans la page de man t'en dira plus...
Par exemple :
find . -not -type d |
Pour ce qui concerne la récupération des noms de fichiers et leur traitement ultérieur, si tu nous disais un peu ce que tu comptes faire ? La comme ça sans boule de cristal c'est un peu dur de deviner
Marsh Posté le 01-04-2008 à 15:43:01
comment ça... t'as pas de boules de crystal.. :-p
en fait je veux faire un find -cmin -10 qui va me renvoyer les fichiers modifiés depuis 10 minutes si j'ai bien compris. Ensuite je veux prendre ces fichiers les changer de répertoire en ayant pris soint de supprimer le fichier equivalent si il y est dans le répertoire de destination.
donc en gros si je peux placer ce que me retourne find dans x variable
fichier$ fichier1$ etc... le reste je devrais y arriver :-p
Marsh Posté le 01-04-2008 à 15:54:15
got a écrit : comment ça... t'as pas de boules de crystal.. :-p |
A priori, c'est pas une bonne idée de vouloir passer par N variables différentes si jamais tu devais avoir à scripter ça, il faudrait passer par une boucle, avec une variable qui prendrait successivement comme valeur les noms des fichiers à traiter.
Mais dans ton cas, c'est plus simple : tu devrais pouvoir faire ce que tu veux avec l'option -exec de find. Encore une fois, la page de man est ton amie...
Marsh Posté le 01-04-2008 à 16:05:40
oui je comptai bien passé par une boucle... mais je regarde du coté de exec même si le probleme est que je vais surement pouvoir effectué mon déplacement avec exec mais pas supprimer le fichier dans le répertoire de destination si il est deja présent... remarque peut être que mv fait l'écrasement je viens d'avoir un flash !!!
Marsh Posté le 01-04-2008 à 16:20:19
sinon, tu peux mettre deux options -exec si tu veux faire deux actions sur le même fichier
Marsh Posté le 01-04-2008 à 16:28:40
yes je vais essayer.. mais sinon une idée de comment je pourrais faire avec une boucle.. même si je l'utilise pas c'est pour ma culture perso ;-)
j'essai de faire un :
Code :
|
pour comprendre comment ça marche mais non le find ne s'éxecute pas... une idée?
Marsh Posté le 01-04-2008 à 16:51:51
il faut mettre des backquotes (``) autour de ta commande find pour qu'elle s'exécute.
Pour protéger les espaces potentiels dans les noms de fichiers retournés par find, il faudrait plutôt utiliser 'read' plutôt qu'une bête boucle 'for i in'
Au final, ça fait un truc genre
find . | while read FILE |
Marsh Posté le 01-04-2008 à 17:03:15
nickel ça va mieux comme ça...
Pendant que je te tiens ;-)
pour revenir sur fin et exec
j'essai ça :
Code :
|
et il me renvoi une erreur
find: missing argument to `-exec'
une idée lumineuse?
Merci pour tout :-)
Marsh Posté le 01-04-2008 à 19:17:36
et pas `{}` mais '{}'
Marsh Posté le 02-04-2008 à 08:06:27
Merci c'est tout bon...
avec {} seul sans ' '
Ce que je voulais faire marche avec les 2 méthode... soit find + exec soit find + boucle... ça m'aura appris pas mal de choses merci à vous 2 ;-)
Marsh Posté le 02-04-2008 à 08:47:11
ReplyMarsh Posté le 02-04-2008 à 09:21:18
o'gure a écrit : sinon tu as find et xargs |
commence pas à donner pas de mauvaises habitudes de scripting aux nouveaux, toi
Marsh Posté le 02-04-2008 à 10:59:03
Je lui donne le choix seulement, il fait ce qu'il veut
Marsh Posté le 01-04-2008 à 11:17:30
bonjour,
sous linux je désirerai extraire le nom d'un ou plusieurs fichier modifier à la date d'aujourd'hui. comment puis-je :
- lister le contenu d'un répertoire avec la date
- analyser chaque date de fichier
- retourner le/les fichier désiré
Merci
pour les infos que vous pourriez m'apporter...