Re: [HS] Deplacer un nombre important de fichiers
On Thu, Jul 18, 2002 at 05:12:17AM +0200, Okki wrote: > > > Pourquoi ne pas passer par un script ? > > > > Ben, en posant la question, j'espérais obtenir une explication sur le > pourquoi d'une telle limitation, et éventuellement comment y remédier, > en changeant par exemple une valeur dans /proc ou dans les sources du > kernel ou autre AMHA le problème est soit une limitation de la ligne de commande du shell ( mv * /tmp s'étend en "mv file1 file2 fil3. /tmp" donc ty récupère une ligne de dcommande trop longue.) soit une limitation de mv, mais ça m'étonnerait. Le paramètre que tu as essayé de changer dans /proc n'a en fait rien à voir avec ça: c'est le nombre maximum de descripteurs de fichiers (filehandle) donc de fichiers ouverts en même temps. mv n'ouvre certainement pas tous les fichiers avant de les déplacer, donc c'est pas surprenant que ça ne change rien au problème. /Y -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] Deplacer un nombre important de fichiers
>>>Donc voilà, j'ai un petit problème. Je souhaiterai déplacer un nombre >>>important de fichiers (plus de 9000), mais j'ai droit à l'erreur >>>suivante : >>>$ mv -i --reply=no * /path/menant/au/repertoire/ >>>bash: /bin/mv: Liste d'arguments trop longue > > Tu peux essayer un "double tar pipé" > (cd /chemin/source ; tar --remove-files -cf - .)| \ > (cd /chemin/dest ; tar -xf -) Et si le deuxième plante tu perds tes fichiers ? Je verrais plutôt ça : find . -type f -maxdepth 1 -exec mv {} /path/menant/au/repertoire/ \; Ou un peu plus tendance gruik contest : find -type f -maxdepth 1 | awk '{print "mv $1 new/"}' | source /dev/stdin Alain -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] Deplacer un nombre important de fichiers
[EMAIL PROTECTED] wrote: Je pense que cela vient de la taille du buffer du shell... Oui, vu que '*' est remplacé par tous les noms de fichiers et de répertoires trouvés. Donc voilà, j'ai un petit problème. Je souhaiterai déplacer un nombre important de fichiers (plus de 9000), mais j'ai droit à l'erreur suivante : $ mv -i --reply=no * /path/menant/au/repertoire/ bash: /bin/mv: Liste d'arguments trop longue Tu peux essayer un "double tar pipé" (cd /chemin/source ; tar --remove-files -cf - .)| \ (cd /chemin/dest ; tar -xf -) -- --Laurent -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] Deplacer un nombre important de fichiers
* VALLIET Manu [05:52 18/07/02]: On Thu, Jul 18, 2002 at 04:12:28AM +0200, Okki wrote: Salut à tous Salut Donc voilà, j'ai un petit problème. Je souhaiterai déplacer un nombre important de fichiers (plus de 9000), mais j'ai droit à l'erreur suivante : $ mv -i --reply=no * /path/menant/au/repertoire/ bash: /bin/mv: Liste d'arguments trop longue J'ai passé la valeur de /proc/sys/fs/file-max à un nombre supérieur à celui du nombre de fichiers, sans que ca change quoi que ce soit. Vais je devoir tenté de modifier la valeur des macros NR_OPEN dans les fichiers fs.h et limits.h des sources du kernel, puis augmenter la valeur de la macro NR_FILE dans fs.h ou existe t il une solution plus simple ne nécessitant pas une recompilation du kernel ? :) Ce n'est pas une question de nombre de fichiers ouverts, mais plutôt de la taille prise par l'ensemble des arguments. Après un 'tit coup de google: http://www.linuxjournal.com/article.php?sid=6060 Donc recompilation de kernel après modif' de variables nécessaire, mais pas là où tu le croyais :-] C'est marrant, je pensais aussi que c'était un prob de nbr d'arguments. Alors j'ai essayé chez moi : cd /tmp mkdir brol; cd brol for i in `seq 9000`; touch test$i mv * ../ Et ça marche !! Peut-être mon shell est-il intelligent (ça m'étonnerait qu'il aille jusque là) Zut!! à 15000 il plante ... Dommage. Ce poste est d'une vacuité totale, désoblé pour la bande passante. -- (°> Nicolas Évrard / ) Liège - Belgique ^^ pgpYJcdmuY3qI.pgp Description: PGP signature
Re: [HS] Deplacer un nombre important de fichiers
Je pense que cela vient de la taille du buffer du shell... Okki wrote: > > Salut à tous > > Donc voilà, j'ai un petit problème. Je souhaiterai déplacer un nombre > important de fichiers (plus de 9000), mais j'ai droit à l'erreur > suivante : > > $ mv -i --reply=no * /path/menant/au/repertoire/ > bash: /bin/mv: Liste d'arguments trop longue > > J'ai passé la valeur de /proc/sys/fs/file-max à un nombre supérieur à > celui du nombre de fichiers, sans que ca change quoi que ce soit. Vais > je devoir tenté de modifier la valeur des macros NR_OPEN dans les > fichiers fs.h et limits.h des sources du kernel, puis augmenter la > valeur de la macro NR_FILE dans fs.h ou existe t il une solution plus > simple ne nécessitant pas une recompilation du kernel ? :) > > Oui, je pourrai effectivement déplacer les fichiers en plusieurs fois, > mais bon, devant accomplir de telles tâches quotidiennement, un unique > mv serait plus simple :) > > Merci d'avance > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED] -- You don't dream, it's a Real Virtuality ! Professional e-mail : [EMAIL PROTECTED] Personal e-mail : [EMAIL PROTECTED] -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] Deplacer un nombre important de fichiers
On Thu, Jul 18, 2002 at 04:12:28AM +0200, Okki wrote: > > > Salut à tous > > Donc voilà, j'ai un petit problème. Je souhaiterai déplacer un nombre > important de fichiers (plus de 9000), mais j'ai droit à l'erreur > suivante : > > $ mv -i --reply=no * /path/menant/au/repertoire/ > bash: /bin/mv: Liste d'arguments trop longue > > J'ai passé la valeur de /proc/sys/fs/file-max à un nombre supérieur à > celui du nombre de fichiers, sans que ca change quoi que ce soit. Vais > je devoir tenté de modifier la valeur des macros NR_OPEN dans les > fichiers fs.h et limits.h des sources du kernel, puis augmenter la > valeur de la macro NR_FILE dans fs.h ou existe t il une solution plus > simple ne nécessitant pas une recompilation du kernel ? :) Ce n'est pas une question de nombre de fichiers ouverts, mais plutôt de la taille prise par l'ensemble des arguments. Après un 'tit coup de google: http://www.linuxjournal.com/article.php?sid=6060 Donc recompilation de kernel après modif' de variables nécessaire, mais pas là où tu le croyais :-] -- Manu // La plus perdue de toutes les journées est celle où l'on a pas ri. // Chamfort (pas le chanteur :) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] Deplacer un nombre important de fichiers
> Pourquoi ne pas passer par un script ? > > for i in ./* ; do mv -i --reply=no $i $1 ; done > > Tu mets ça dans un fichier appelé mouvto, exécutable, dans ton PATH, et tu > n'as plus qu'à taper « mouvto /path/menant/au/repertoire/ » pour déplacer > le contenu du répertoire courant vers /path/machin. > > Ça me semble tellement évident que je suis à peu près sûr d'être passé à > côté du problème... :-/ Ben, en posant la question, j'espérais obtenir une explication sur le pourquoi d'une telle limitation, et éventuellement comment y remédier, en changeant par exemple une valeur dans /proc ou dans les sources du kernel ou autre A défaut d'une solution au niveau de mv, je contournerai le problème en utilisant ta méthode Encore merci :) -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
Re: [HS] Deplacer un nombre important de fichiers
Le jeudi 18 juillet 2002, à 04:12, Okki écrivait : > Donc voilà, j'ai un petit problème. Je souhaiterai déplacer un nombre > important de fichiers (plus de 9000), mais j'ai droit à l'erreur > suivante : > > $ mv -i --reply=no * /path/menant/au/repertoire/ > bash: /bin/mv: Liste d'arguments trop longue > > J'ai passé la valeur de /proc/sys/fs/file-max à un nombre supérieur à > celui du nombre de fichiers, sans que ca change quoi que ce soit. Vais > je devoir tenté de modifier la valeur des macros NR_OPEN dans les > fichiers fs.h et limits.h des sources du kernel, puis augmenter la > valeur de la macro NR_FILE dans fs.h ou existe t il une solution plus > simple ne nécessitant pas une recompilation du kernel ? :) > > Oui, je pourrai effectivement déplacer les fichiers en plusieurs fois, > mais bon, devant accomplir de telles tâches quotidiennement, un unique > mv serait plus simple :) Pourquoi ne pas passer par un script ? for i in ./* ; do mv -i --reply=no $i $1 ; done Tu mets ça dans un fichier appelé mouvto, exécutable, dans ton PATH, et tu n'as plus qu'à taper « mouvto /path/menant/au/repertoire/ » pour déplacer le contenu du répertoire courant vers /path/machin. Ça me semble tellement évident que je suis à peu près sûr d'être passé à côté du problème... :-/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]
[HS] Deplacer un nombre important de fichiers
Salut à tous Donc voilà, j'ai un petit problème. Je souhaiterai déplacer un nombre important de fichiers (plus de 9000), mais j'ai droit à l'erreur suivante : $ mv -i --reply=no * /path/menant/au/repertoire/ bash: /bin/mv: Liste d'arguments trop longue J'ai passé la valeur de /proc/sys/fs/file-max à un nombre supérieur à celui du nombre de fichiers, sans que ca change quoi que ce soit. Vais je devoir tenté de modifier la valeur des macros NR_OPEN dans les fichiers fs.h et limits.h des sources du kernel, puis augmenter la valeur de la macro NR_FILE dans fs.h ou existe t il une solution plus simple ne nécessitant pas une recompilation du kernel ? :) Oui, je pourrai effectivement déplacer les fichiers en plusieurs fois, mais bon, devant accomplir de telles tâches quotidiennement, un unique mv serait plus simple :) Merci d'avance -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]