Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Script shell de suppression d'image la plus ancienne

4 réponses
Avatar
kenza18
Bonjour,

Je suis confrontée à un problème au niveau de la programmation en Shell.
Etant donné que je suis novice dans le domaine, je pose la question à des experts afin de savoir comment je peux résoudre le problème.
En effet, voici ma question ou plutot mon problème:
1- Developper un script en shell qui me permettra de supprimer la plus ancienne image présente (genre un buffer circulaire)

JE vous remercie d'avance et reste à votre disposition.

4 réponses

Avatar
Benoit Izac
Bonjour,

le 05/08/2010 à 10:51, kenza a écrit dans le message
:

Je suis confrontée à un problème au niveau de la programmation en Shell.
Etant donné que je suis novice dans le domaine, je pose la question à des
experts afin de savoir comment je peux résoudre le problème.
En effet, voici ma question ou plutot mon problème:
1- Developper un script en shell qui me permettra de supprimer la plus
ancienne image présente (genre un buffer circulaire)



[ Tu es au mauvais endroit, je redirige sur <news:fr.comp.os.unix>. ]

Si tu es dans un répertoire où il n'y a que les images :
rm -- $(ls -rt | head -n1)

Sinon si ton image a l'extension .jpg :
rm -- $(ls -rt *.jpg | head -n1)

--
Benoit Izac
Avatar
Cyrille Lefevre
Le 05/08/2010 23:22, Benoit Izac a écrit :
Bonjour,

le 05/08/2010 à 10:51, kenza a écrit dans le message
:

Je suis confrontée à un problème au niveau de la programmation e n Shell.
Etant donné que je suis novice dans le domaine, je pose la question à des
experts afin de savoir comment je peux résoudre le problème.
En effet, voici ma question ou plutot mon problème:
1- Developper un script en shell qui me permettra de supprimer la plus
ancienne image présente (genre un buffer circulaire)



[ Tu es au mauvais endroit, je redirige sur <news:fr.comp.os.unix>. ]

Si tu es dans un répertoire où il n'y a que les images :
rm -- $(ls -rt | head -n1)

Sinon si ton image a l'extension .jpg :
rm -- $(ls -rt *.jpg | head -n1)




Bonjour,

je dirais plutôt :

[[ -f top ]] || touch top
touch top2
find . ! -newer top | xargs rm
mv top2 top

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Avatar
Benoit Izac
Bonjour,

le 06/08/2010 à 12:54, Cyrille Lefevre a écrit dans le message
<i3gplc$hth$ :

1- Developper un script en shell qui me permettra de supprimer
la plus ancienne image présente (genre un buffer circulaire)



Si tu es dans un répertoire où il n'y a que les images :
rm -- $(ls -rt | head -n1)

Sinon si ton image a l'extension .jpg :
rm -- $(ls -rt *.jpg | head -n1)



je dirais plutôt :

[[ -f top ]] || touch top
touch top2
find . ! -newer top | xargs rm
mv top2 top



Heu... Là tu va supprimer tout ce qui est plus ancien que top, soit rien
la première fois (sauf si il y a déjà un fichier qui se nomme « top »)
puis tout ce qui n'avait pas été supprimé lors de la précédente
exécution du script (sauf si entre-temps quelqu'un à eu la bonne idée de
toucher à « top »). C'est l'effet voulu (car ce n'est pas comme ça que
j'ai compris la question) ?

Ensuite, pourquoi utiliser xargs plutôt que « -exec rm -- {} + » ?

--
Benoit Izac
Avatar
Cyrille Lefevre
Le 06/08/2010 14:57, Benoit Izac a écrit :
Bonjour,

le 06/08/2010 à 12:54, Cyrille Lefevre a écrit dans le message
<i3gplc$hth$ :

1- Developper un script en shell qui me permettra de supprimer
la plus ancienne image présente (genre un buffer circulaire)



Si tu es dans un répertoire où il n'y a que les images :
rm -- $(ls -rt | head -n1)

Sinon si ton image a l'extension .jpg :
rm -- $(ls -rt *.jpg | head -n1)



je dirais plutôt :

[[ -f top ]] || touch top
touch top2
find . ! -newer top | xargs rm
mv top2 top



Heu... Là tu va supprimer tout ce qui est plus ancien que top, soit r ien
la première fois (sauf si il y a déjà un fichier qui se nomme « top »)


c'est voulu
puis tout ce qui n'avait pas été supprimé lors de la précéden te
exécution du script (sauf si entre-temps quelqu'un à eu la bonne id ée de


c'est voulu aussi
toucher à « top »). C'est l'effet voulu (car ce n'est pas comme ç a que
j'ai compris la question) ?



effectivement, j'ai lu "les" plutôt que "la" plus ancienne ...

Ensuite, pourquoi utiliser xargs plutôt que « -exec rm -- {} + » ?



la force de l'habitude surement, toutefois, xargs est plus portable que
-exec ... + (pas besoin d' le +, soit dit en passant).

essaye en RHEL 3 par ex. :-)

encore que pour bien faire, il faut ajouter -r à la version gnu d'xargs ,
quelle daube !

c'est comme le tail +1 qu'ils ont cassé récemment, alors que rien
n'empêche des rester compatible avec l'ancienne norme sans voir à
spécifier _POSIX2_VERSION 0112, etc. en clair, POLA ou BLODA, au ch oix...

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.