/bin/cp: Argument list too long

Vasilis Vasaitis vasilis at femanet.com.br
Thu Oct 31 13:35:05 EET 2002


On Wed, Oct 30, 2002 at 10:58:35PM +0200, Giorgos Keramidas wrote:
> On 2002-10-28 19:29, Alexandros Papadopoulos <apapadop at cmu.edu> wrote:
> >
> > Twra ayto pou me apasxolei einai giati otan paw na antigrapsw enan
> > fakelo me ~12000 arxeia mesa, pairnw thn ekshs apanthsh:
> >
> > [alex at localhost ~/Mail2/.Linux.directory/Hellug/cur]$ cp * /home/alex/Mail/HELLUG/cur/
> > bash: /bin/cp: Argument list too long
> >
> > ...kai pws mporw na to kseperasw?
> 
> Σε απασχολεί να μάθεις γιατί γίνεται αυτό, ή να βρεις ένα τρόπο να το
> ξεπεράσεις;
> 
> Τα shells έχουν ένα περιορισμό στο πόσο μεγάλο μπορεί να γίνει ένα
> command-line μετά την ανάπτυξη οποιωνδήποτε "backquoted" εντολών και
> μεταβλητών περιβάλλοντοςς.  Αυτό γίνεται για να μην κάνεις κατά λάθος
> καμιά εξυπνάδα και ξαφνικά το shell κάνει allocate όλη τη μνήμη του
> συστήματος για να κρατήσει τις παραμέτρους που θα περάσει στην
> διεργασία που θα εκτελέσει.  Το πλήρες command line υπάρχει στη μνήμη
> τουλάχιστον μια φορά όταν ένα πρόγραμμα όπως το shell σου κάνει exec()
> και τρέξει κάποια εντολή.  Σκέψου το καημένο το kernel τι ζόρια θα
> τράβαγε αν του πέταγες ξαφνικά στη μάπα ένα command line με μέγεθος
> περίπου δυο φορές όσο η φυσική μνήμη του συστήματος!

  Ε, δηλαδή, αυτό που προσπαθείς να πεις εδώ με λίγα λόγια είναι ότι
"it's not a bug, it's a feature". Ε δε νομίζω. Εγώ απ' όσο ξέρω αυτός
είναι απλά ένας περιορισμός του πυρήνα (και όχι των shell σε μια
σταυροφορία κατά της υπερβολικής κατανομής μνήμης) που απλά υπήρχε
πάντα στο UNIX, και κανείς δεν μπήκε στον κόπο να δει αν μπορεί να
αρθεί χωρίς προβλήματα.

  Αν κάποιος τρέχει Hurd ας κάνει μια δοκιμή, πιθανώς εκεί να μην
υπάρχει τέτοιο πρόβλημα...

..[snip]..

-- 
Vasilis Vasaitis
vasilis at femanet.com.br





More information about the Linux-greek-users mailing list