find /var/depot/www -type f |
# remplacement de tous les " par \"
sed -e 's/"/\\&/g' |
(
# longueur maximale de la ligne de commande
limit=10000
# valeur initiale
args=mv
while read line; do
# si la limite est atteinte
if (( ${#args} + ${#line} + 1 > ${limit} )); then
# execution de la ligne de commande prepare
eval ${args} /var/www/a_traiter
# puis reinitialisation
args=mv
# pas de continue pour ne pas perdre l'argument courant
fi
# ajout de l'argument courant a la ligne de commande a executer
args="${args} \"${line}\""
done
# traitement de ce qui reste
eval ${args} /var/www/a_traiter
)
Regards, Cordialement,
Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%nospam@laposte.net.invalid
supprimer "%nospam% et ".invalid" pour me repondre.
remove "%nospam" and ".invalid" to answer me.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stephane CHAZELAS
2010-09-08, 11:26(+02), Cyrille Lefevre:
Hi, Bonjour,
find /var/depot/www -type f | # remplacement de tous les " par " sed -e 's/"/&/g' | ( # longueur maximale de la ligne de commande limit000 # valeur initiale args=mv while read line; do # si la limite est atteinte if (( ${#args} + ${#line} + 1 > ${limit} )); then # execution de la ligne de commande prepare eval ${args} /var/www/a_traiter # puis reinitialisation args=mv # pas de continue pour ne pas perdre l'argument courant fi # ajout de l'argument courant a la ligne de commande a executer args="${args} "${line}"" done # traitement de ce qui reste eval ${args} /var/www/a_traiter )
[...]
Pas mal de bugs, de trous de securité, de non-POSIXness la dedans.
find /var/depot/www -type f -exec sh -c ' exec mv "$@" /var/www/a_traiter' {} +
-- Stephane
2010-09-08, 11:26(+02), Cyrille Lefevre:
Hi, Bonjour,
find /var/depot/www -type f |
# remplacement de tous les " par "
sed -e 's/"/\&/g' |
(
# longueur maximale de la ligne de commande
limit000
# valeur initiale
args=mv
while read line; do
# si la limite est atteinte
if (( ${#args} + ${#line} + 1 > ${limit} )); then
# execution de la ligne de commande prepare
eval ${args} /var/www/a_traiter
# puis reinitialisation
args=mv
# pas de continue pour ne pas perdre l'argument courant
fi
# ajout de l'argument courant a la ligne de commande a executer
args="${args} "${line}""
done
# traitement de ce qui reste
eval ${args} /var/www/a_traiter
)
[...]
Pas mal de bugs, de trous de securité, de non-POSIXness la
dedans.
find /var/depot/www -type f -exec sh -c '
exec mv "$@" /var/www/a_traiter' {} +
find /var/depot/www -type f | # remplacement de tous les " par " sed -e 's/"/&/g' | ( # longueur maximale de la ligne de commande limit000 # valeur initiale args=mv while read line; do # si la limite est atteinte if (( ${#args} + ${#line} + 1 > ${limit} )); then # execution de la ligne de commande prepare eval ${args} /var/www/a_traiter # puis reinitialisation args=mv # pas de continue pour ne pas perdre l'argument courant fi # ajout de l'argument courant a la ligne de commande a executer args="${args} "${line}"" done # traitement de ce qui reste eval ${args} /var/www/a_traiter )
[...]
Pas mal de bugs, de trous de securité, de non-POSIXness la dedans.
find /var/depot/www -type f -exec sh -c ' exec mv "$@" /var/www/a_traiter' {} +