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

script bash

13 réponses
Avatar
ppellero
Bonjour,

J'ai un site h=E9berg=E9 sur un serveur Linux et veux effacer dans un=20
r=E9pertoire tous les fichiers .jpg issus d'une webcam qui s'accumulent.
J'ai la possibilit=E9 de lancer une tache planifi=E9e.
Je pensais =E0 un fichier bash :
#!/bin/bash
rm -f *.jpg
Je suis novice sur Linux, est-ce que cela peut marcher?

Merci de votre attention.

3 réponses

1 2
Avatar
ppellero
Le 09/08/2010 21:01, Yliur a écrit :
Le Mon, 09 Aug 2010 17:54:48 +0200
ppellero a écrit :

Bonjour,

J'ai un site hébergé sur un serveur Linux et veux effacer dans un
répertoire tous les fichiers .jpg issus d'une webcam qui s'accumulen t.
J'ai la possibilité de lancer une tache planifiée.
Je pensais à un fichier bash :
#!/bin/bash
rm -f *.jpg
Je suis novice sur Linux, est-ce que cela peut marcher?

Merci de votre attention.




Attention au répertoire qui sera le répertoire courant au moment
d'exécuter ce script.



Il se peut que l'hébergeur bloque ce genre de script.
Je vais faire un script en PHP c'est sur qu'il marchera.

Merci pour votre aide je vais me mettre à Linux et je pense que j'aurai
encore besoin de conseil.

Paul
Avatar
Nicolas George
Erwan David wrote in message :
Le + est GNU, avec un ; à la place c'est standard. Mais ça forque un rl
parfichier, alors que le +, comme le xargs va regrouper les fichiers
pour moins forker.



# -exec utility_name [argument ...] {} +
#
# If the primary expression is punctuated by a plus sign, the primary
# shall always evaluate as true, and the pathnames for which the primary
# is evaluated shall be aggregated into sets. The utility utility_name
# shall be invoked once for each set of aggregated pathnames.

Non mais !

Soit dit en passant, le texte que je cite est antérieur à 2001. Alors que :

# 2005-01-09 James Youngman
#
# * find/defs.h, find/find.c, find/parser.c, find/pred.c, lib/buildcmd.c,
# Initial implementation of -exec ..{} +, but currently disabled since
# not yet working

(issu du ChangeLog des findutils)
Avatar
Benoit Izac
Bonjour,

le 11/08/2010 à 10:36, Michael DENIS a écrit dans le message
<4c626106$0$8055$ :

<mode devinette>
car je n'ai jamais utilisé cette option de find

-exec





et exécuter

rm -f





la suppression forcée

{} +





de la liste retournée par find
</mode devinette>



Le « + » permet d'exécuter la commande « rm -f » avec ARG_MAX (4096
selon POSIX, 131072 sur mon système) arguments maximum retournés par
find.

Si par exemple « find / -name toto » retourne 7654 arguments et que
ARG_MAX vaut 4096, « find / -name toto -exec ls {} + » va exécuter deux
fois « ls », une fois avec les 4096 premiers résultats, puis une seconde
avec les 3558 restants.

Si on avait utilisé « find / -name toto -exec ls {} ; », « ls » aurait
été exécuté 7654 fois avec à chaque fois un seul argument.

--
Benoit Izac
1 2