Besoin d'aide pour un script

Bonjour,

J’aimerai faire un script qui déplace des fichiers d’un dossier X à un dossier Y selon une condition assez simple : Si 2 fichiers portants une extension définie se trouvent dans le dossier X, déplacer le plus vieux des deux fichiers dans le dossier Y.

Je connais les commandes de base :

mv
ls -l

Mais le problème c’est que je ne sais pas comment automatiser la tâche (que le répertoire soit scanné toutes les 5 minutes), comment récupérer le nom du fichier pour que la commande mv le déplace, et comment faire en sorte que l’output de ls soit aussi récupéré pour que la date et l’heure de création du fichier soient pris en compte.

Merci d’avance pour votre aide.

pour tout ce qui est automatisation, tu peux commencer par te renseigner sur cron.

Pour le script le voici :

[code]#!/bin/sh

ext=‘txt’

cd X

if [ $(ls -1 *.$ext | wc -l) -eq 2 ]; then
mv $(ls -1 --sort=time *.txt | tail -n 1) Y
fi[/code]

Pour cron la commande est facile à trouver sur google. Pour le script si tu veut que je l’explique n’hésite pas.

Oui je veux bien que tu m’expliques, en tout cas merci beaucoup pour ton aide.

Ce que je ne comprends pas surtout c’est l’utilisation des $ au début des lignes, le $ dans *.$ext (qu’est ce que ça aurait changé si ça avait été *.ext?). (Edit, je crois que je viens de comprendre, en fait, sans le $ il aurait juste recherché les .ext, et non ext=‘txt’)

Et d’où viennent tous les termes comme wc , tail ?
Où apprendre ce language ?

Et fi ça veut dire que le if se fini là ?

Tu as compris $ext est une variable qui représente “txt”.

[quote=“Solidstatedrive”]Et d’où viennent tous les termes comme wc , tail ?
Où apprendre ce langage ?[/quote]
On ne peux pas les apprendre de manière séquentielle de façon simple.
Généralement on apprend ça au fur et à mesure.
Tu peut en trouver de liste sur inter net :
[ul]
[li]http://wiki.debian.org/fr/ShellCommands (c’est moi qui l’ai fait :smiley: )[/li]
[li]https://secure.wikimedia.org/wikipedia/fr/wiki/Commandes_Unix[/li]
[li]les principaux font parti du paquet coreutils (qui est déjà installé sur ton ordinateur, il est nécéssaire au bon fonctionnement de Debian), tu peut voir la liste des commande qu’il fournis grâce à la commande :

Ce sont des listes de commandes mais pour mieux les connaître il faut lire leur documentation pour ça tu as le man (man nom_de_la_commande) ou tu peut les lancer avec l’option --help.

Il est je pense important de comprendre que ça ne constitue pas un langage. En fait c’est un ensemble de programmes. Tu peut les utiliser de pleins de manière différentes.

Les langages de scripts comme les scripts shell sont dit des langages « glue » car ils servent principalement à faire travailler ensemble tout ces programmes.

Sur le forum nous sommes plusieurs à pas mal utiliser ce genre de chose, on se ferras un plaisir de t’aider si tu as un problème.

C’est exacte cette partie là c’est viens du langage utilisé (le script (bourn) shell).