Command line buffer limit? | Unix Linux Forums | UNIX for Dummies Questions & Answers

  Go Back    


UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !!

Command line buffer limit?

UNIX for Dummies Questions & Answers


Closed Thread    
 
Thread Tools Search this Thread Display Modes
    #1  
Old 01-03-2003
kornshellmaven kornshellmaven is offline
Registered User
 
Join Date: Apr 2001
Last Activity: 10 August 2009, 3:53 PM EDT
Posts: 25
Thanks: 0
Thanked 0 Times in 0 Posts
Command line buffer limit?

Is there a limit (255 chars?) on the command line??

I'm trying to copy some generated java & class files from one dir to another and ID the old & new versions by:

find . -name FFSFIXADminCallbackBean.java

I then do a copy and paste of the source and target -
$ cp -p source target

It looks like my command gets truncated when it's executed...
(The directory structure is monstrous!!)

I'm running HPUX 11. Does this behave the same under Solaris 2.8?

Thanks,

John
Sponsored Links
    #2  
Old 01-03-2003
RTM's Avatar
RTM RTM is offline Forum Advisor  
Registered User
 
Join Date: Apr 2002
Last Activity: 3 April 2014, 2:50 PM EDT
Location: On my motorcycle
Posts: 3,092
Thanks: 1
Thanked 29 Times in 9 Posts
Yes, there is a limit to the command line.

To 'get around' the limit, try installing a soft link which points to the directory you are trying to copy to (this should take care of the long directory structure)
Sponsored Links
    #3  
Old 01-04-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon (Administrator Emeritus)
 
Join Date: Aug 2001
Last Activity: 18 April 2014, 11:48 PM EDT
Location: Ashburn, Virginia
Posts: 9,833
Thanks: 42
Thanked 378 Times in 225 Posts
I think that you have some other problem. The various limits are found in <limits.h> or "man limits". The max length of a command line is 2048. A posix compliant OS may have a larger limit but it may not have a smaller limit. So you can depend on at least 2048. I often use commands longer than 255 characters on HP-UX.
    #4  
Old 01-06-2003
RTM's Avatar
RTM RTM is offline Forum Advisor  
Registered User
 
Join Date: Apr 2002
Last Activity: 3 April 2014, 2:50 PM EDT
Location: On my motorcycle
Posts: 3,092
Thanks: 1
Thanked 29 Times in 9 Posts
Care to verify that Perderabo? When I read your post I figured you were correct since I mostly have to deal with Solaris and I know how many differences between the major UNIX brands.

But in trying to enter a continous 255+ command on the command line it dies a horrible death with a quite spectacular sounding of the "keyboard overflow" .... streaming beeps. (Yes, it was on HP-UX 11).

How are you creating 255+ character command lines? (For my education, thank you)

Would the limit you suggest still not have a problem with the find command that the poster submitted?
Sponsored Links
    #5  
Old 01-06-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon (Administrator Emeritus)
 
Join Date: Aug 2001
Last Activity: 18 April 2014, 11:48 PM EDT
Location: Ashburn, Virginia
Posts: 9,833
Thanks: 42
Thanked 378 Times in 225 Posts
As I test, I just signed in to an 11.0 box. Then I typed:
echo xxxxxxxxxxxx | wc -c
I actually held the x key for a long time. The result was 1988. I'm surprised that I got that close to 2048, I removed my finger from the x key when I estimated that I had about 500 characters. Oh well.

But maybe you made a similiar error? 255+ is a slippery term. Could you have had very much more than 255?

Even MAX_INPUT is 512. That means that you should be able to pre-type 512 characters and have them laying around in the terminal's input buffer ready to go for the next read the shell issues.

My usual means of generating very long command lines is something like:
gzip *
But I realized that I needed to explicitly type one in to really prove my point.

As for the find command itself, it clearly is ok. The OP had troubles building a subsequent command by cutting and pasting the output from the find command. I have no way of knowing how long the created command was.
Sponsored Links
    #6  
Old 01-07-2003
RTM's Avatar
RTM RTM is offline Forum Advisor  
Registered User
 
Join Date: Apr 2002
Last Activity: 3 April 2014, 2:50 PM EDT
Location: On my motorcycle
Posts: 3,092
Thanks: 1
Thanked 29 Times in 9 Posts
Thanks Perderabo. I did two different commands (one to create a directory which I realized may have been a problem other than the 'limit' on command line) but both errored by beeping constantly and giving an error in the middle of the line.

On one, it cut a grep command and came back with "command not found" for "rep" and the other died along the same line (same number of characters).

cat passwd | grep h | grep o | grep m | grep e | grep a | grep i | grep o | grep 8 | grep 1 | grep 3 | grep 2 | grep 9 | grep "-" | grep S | grep b | grep l | grep t | grep L | grep 4 | grep d | grep r | grep 0 | grep V | grep I | grep abal | grep k | grep and | grep ers | grep eit | grep N | grep z | grep w | grep g | grep N
$ V | grep I | grep abal | grep k | grep <
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] -e pattern_list...
[-f pattern_file...] [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] [-e pattern_list...]
-f pattern_file... [file...]
usage: grep [-E|-F] [-c|-l|-q] [-bhinsvx] pattern [file...]

Note that when hitting return, it errors and gives back a prompt and includes the rest of the line as a start of a new command ($ V | grep 1 ....).

This is probably some other parameter set differently from one system to the next (or possibly shell) but I figured I would ask about it. I can also get the same response on Solaris even though I found some indication that the same information you suggested was true for it too. Ksh on HP and csh on Solaris. And for some reason I get a few more characters (about 40 ) on Solaris. The whole thing is strange and inconsistant.
Sponsored Links
    #7  
Old 01-07-2003
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon (Administrator Emeritus)
 
Join Date: Aug 2001
Last Activity: 18 April 2014, 11:48 PM EDT
Location: Ashburn, Virginia
Posts: 9,833
Thanks: 42
Thanked 378 Times in 225 Posts
That sounds like flow control. Characters are arriving too fast for the driver to read them. Are you using a real terminal? If you're using a network connection, are you using rlogin? If so switch to telnet and repeat your test. Bear in mind that even if flow control is working properly, it is not directly connected to you. All it can do is beep and hope that you stop typing.
Sponsored Links
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Limit line for perl Nick1097 Programming 4 04-10-2012 05:40 AM
Ignore the 255 character limit of command line agentgrecko Shell Programming and Scripting 5 11-18-2011 11:22 AM
Problem with awk awk: program limit exceeded: sprintf buffer size=1020 fate Shell Programming and Scripting 2 04-21-2010 10:37 AM
How to limit the search to 'n' occurrences within a line Linuxee UNIX for Advanced & Expert Users 9 09-04-2009 03:08 AM
sendmail message body buffer limit? Optimus_P UNIX for Dummies Questions & Answers 3 10-04-2001 09:13 AM



All times are GMT -4. The time now is 02:54 AM.