Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SZ(1)			    General Commands Manual			 SZ(1)

       sx, sb, sz - XMODEM, YMODEM, ZMODEM file	send

       sz [-+8abdefkLlNnopqTtuvyY] file	...
       sb [-adfkqtuv] file ...
       sx [-akqtuv] file
       sz [-oqtv] -c COMMAND
       sz [-oqtv] -i COMMAND
       sz -TT

       Sz  uses	the ZMODEM, YMODEM or XMODEM error correcting protocol to send
       one or more files over a	dial-in	serial port to a variety  of  programs
       running under PC-DOS, CP/M, Unix, VMS, and other	operating systems.

       While  rz is smart enough to be called from cu(1), very few versions of
       cu(1) are smart enough to allow sz to work properly.  Unix  flavors  of
       Professional-YAM	are available for such dial-out	application.

       Sz sends	one or more files with ZMODEM protocol.

       ZMODEM  greatly simplifies file transfers compared to XMODEM.  In addi-
       tion to a friendly user interface, ZMODEM  provides  Personal  Computer
       and  other  users  an  efficient,  accurate,  and  robust file transfer

       ZMODEM provides complete	END-TO-END data	integrity between  application
       programs.   ZMODEM's 32 bit CRC catches errors that sneak into even the
       most advanced networks.

       Advanced	file management	features include AutoDownload (Automatic  file
       Download	 initiated  without  user intervention), Display of individual
       and total file lengths and transmission time estimates, Crash Recovery,
       selective  file	transfers,  and	 preservation  of  exact file date and

       Output from another program may be piped	to sz for transmission by  de-
       noting standard input with "-":
				    ls -l | sz -
       The  program  output is transmitted with	the filename where PID
       is the process ID of the	sz program.  If	the environment	variable ONAME
       is set, that is used instead.  In this case, the	Unix command:
			     ls	-l | ONAME=con sz -ay -
       will  send  a  "file" to	the PC-DOS console display.  The -y option in-
       structs the receiver to open the	file for writing unconditionally.  The
       -a  option  causes the receiver to convert Unix newlines	to PC-DOS car-
       riage returns and linefeeds.

       Sb batch	sends one or more files	with YMODEM or ZMODEM  protocol.   The
       initial	ZMODEM	initialization is not sent.  When requested by the re-
       ceiver, sb supports YMODEM-g with "cbreak" tty mode, XON/XOFF flow con-
       trol, and interrupt character set to CAN	(^X).  YMODEM-g	(Professional-
       YAM g option) increases throughput over	error  free  channels  (direct
       connection, X.PC, etc.)	by not acknowledging each transmitted sector.

       On  Unix	systems, additional information	about the file is transmitted.
       If the receiving	program	uses this information,	the  transmitted  file
       length  controls	 the  exact  number  of	 bytes	written	 to the	output
       dataset,	and the	modify time and	file mode are set accordingly.

       Sx sends	a single file with XMODEM or XMODEM-1k protocol	(sometimes in-
       correctly called	"ymodem").  The	user must supply the file name to both
       sending and receiving programs.

       If sz is	invoked	with $SHELL set	and iff	 that  variable	 contains  the
       string  rsh  ,  rbash  or  rksh	(restricted shell), sz operates	in re-
       stricted	mode.  Restricted mode restricts pathnames to the current  di-
       rectory	and  PUBDIR (usually /usr/spool/uucppublic) and/or subdirecto-
       ries thereof.

       The fourth form sends a single COMMAND to a ZMODEM receiver for	execu-
       tion.   Sz  exits  with	the COMMAND return value.  If COMMAND includes
       spaces or characters special to the shell, it must be quoted.

       The fifth form sends a single COMMAND to	a ZMODEM receiver  for	execu-
       tion.  Sz exits as soon as the receiver has correctly received the com-
       mand, before it is executed.

       The sixth form (sz -TT) attempts	to output all 256 code combinations to
       the terminal.  In you are having	difficulty sending files, this command
       lets you	see which character codes are being  eaten  by	the  operating

       If  sz is invoked with stdout and stderr	to different datasets, Verbose
       is set to 2, causing frame by frame progress reports to	stderr.	  This
       may be disabled with the	q option.

       The meanings of the available options are:

       -+, --append
	      Instruct	the receiver to	append transmitted data	to an existing
	      file (ZMODEM only).
       -2, --twostop
	      use two stop bits	(if possible). Do not use this unless you know
	      what you are doing.
       -8, --try-8k
	      Try  to  go up to	8KB blocksize. This is incompatible with stan-
	      dard zmodem, but a common	extension in the  bbs  world.  (ZMODEM
	      Start with 8KB blocksize.	Like --try-8k.
       -a, --ascii
	      Convert NL characters in the transmitted file to CR/LF.  This is
	      done by the sender for XMODEM and	YMODEM,	by  the	 receiver  for
       -b, --binary
	      (ZMODEM) Binary override:	transfer file without any translation.
       -B NUMBER, --bufsize NUMBER
	      Use  a  readbuffer  of  NUMBER  bytes.  Default ist 16384, which
	      should be	enough for most	situations. If you have	a slow machine
	      or  a  bad disk interface	or suffer from other hardware problems
	      you might	want to	increase the buffersize.  -1  or  auto	use  a
	      buffer  large  enough  to	buffer the whole file. Be careful with
	      this option - things normally get	worse, not better, if the  ma-
	      chine starts to swap.

	      Using  this  option  turns  of memory mapping of the input file.
	      This increases memory and	cpu usage.
       -c COMMAND, --command COMMAND
	      Send COMMAND to the receiver for	execution,  return  with  COM-
	      MAND's exit status.
       -C N, --command-tries N
	      Retry to send command N times (default: 11).
       -d, --dot-to-slash
	      Change  all instances of "." to "/" in the transmitted pathname.
	      Thus, C.omenB0000	(which is unacceptable to MSDOS	 or  CP/M)  is
	      transmitted  as C/omenB0000.  If the resultant filename has more
	      than 8 characters	in the stem, a "." is inserted to allow	a  to-
	      tal of eleven.

	      This option enables the --full-path option.
       --delay-startup N
	      Wait N seconds before doing anything.
       -e, --escape
	      Escape all control characters; normally XON, XOFF, DLE, CR-@-CR,
	      and Ctrl-X are escaped.
       Force the sender	to rename the new file if a file with the same
	      name already exists.
       -f, --full-path
	      Send Full	pathname.  Normally directory  prefixes	 are  stripped
	      from the transmitted filename.

	      This is also turned on with to --dot-to-slash option.
       -h, --help
	      give help.
       -i COMMAND, --immediate-command COMMAND
	      Send  COMMAND  to	the receiver for execution, return immediately
	      upon the receiving program's successful recption of the command.
       -k, --1k
	      (XMODEM/YMODEM) Send files using 1024 byte  blocks  rather  than
	      the  default  128	 byte  blocks.	 1024  byte packets speed file
	      transfers	at high	bit rates.  (ZMODEM streams the	data  for  the
	      best possible throughput.)
       -L N, --packetlen N
	      Use  ZMODEM  sub-packets	of  length  N.	A larger N (32 <= N <=
	      1024) gives slightly higher throughput, a	smaller	N speeds error
	      recovery.	  The  default	is  128	 below 300 baud, 256 above 300
	      baud, or 1024 above 2400 baud.
       -m N, --min-bps N
	      Stop transmission	if BPS-Rate (Bytes Per Second) falls  below  N
	      for a certain time (see --min-bps-time option).
       -M N, --min-bps-time
	      Used together with --min-bps. Default is 120 (seconds).
       -l N, --framelen	N
	      Wait for the receiver to acknowledge correct data	every N	(32 <=
	      N	<= 1024) characters.  This may be used to avoid	network	 over-
	      run when XOFF flow control is lacking.
       -n, --newer
	      (ZMODEM)	Send  each  file  if  destination file does not	exist.
	      Overwrite	destination file if source file	is newer than the des-
	      tination file.
       -N, --newer-or-longer
	      (ZMODEM)	Send  each  file  if  destination file does not	exist.
	      Overwrite	destination file if source file	 is  newer  or	longer
	      than the destination file.
       -o, --16-bit-crc
	      (ZMODEM) Disable automatic selection of 32 bit CRC.
       -O, --disable-timeouts
	      Disable  read timeout handling. This makes lsz hang if the other
	      side doesn't send	anything, but increases	performance (not much)
	      and  decreases  system  load  (reduces number of system calls by
	      about 50 percent).

	      Use this option with care.
       -p, --protect
	      (ZMODEM) Protect existing	destination files by skipping transfer
	      if the destination file exists.
       -q, --quiet
	      Quiet suppresses verbosity.
       -R, --restricted
	      Restricted  mode:	 restricts  pathnames to the current directory
	      and PUBDIR (usually /usr/spool/uucppublic) and/or	subdirectories
       -r, --resume
	      (ZMODEM)	Resume	interrupted file transfer.  If the source file
	      is longer	than the destination file, the transfer	 commences  at
	      the offset in the	source file that equals	the length of the des-
	      tination file.
       -s HH:MM, --stop-at HH:MM
	      Stop transmission	at HH hours, MM	minutes. Another variant,  us-
	      ing +N instead of	HH:MM, stops transmission in N seconds.
       -S, --timesync
	      enable  timesync	protocol support. See timesync.doc for further

	      This option is incompatible with standard	zmodem.	 Use  it  with
	      turn syslogging on or off. the default is	set at configure time.
	      This option is ignored if	no syslog support is compiled in.
       -t TIM, --timeout TIM
	      Change timeout to	TIM tenths of seconds.
       -T, --turbo
	      Do not escape certain characters (^P,  ^P|0x80,  telenet	escape
	      sequence [CR + @]). This improves	performance by about 1 percent
	      and shouldn't hurt in the	normal case (but be careful - ^P might
	      be useful	if connected through a terminal	server).
       --tcp  Try  to initiate a TCP/IP	connection. lsz	will ask the receiving
	      zmodem to	open a TCP/IP connection. All handshaking  (which  ad-
	      dress / port to use) will	be done	by the zmodem programs.

	      You  will	 normally  not want to use this	option as lrzsz	is the
	      only zmodem which	understands what to  do	 (private  extension).
	      You  might  want to use this option if the two programs are con-
	      nected (stdin/out) over a	slow or	bad (not 8bit  clean)  network

	      Use  of this option imposes a security risk, somebody else could
	      connect to the port in between. See SECURITY for details.
       --tcp-client ADDRESS:PORT
	      Act as a tcp/ip client: Connect to the given port.

	      See --tcp-server for more	information.

	      Act as a server: Open a socket, print out	what to	do,  wait  for

	      You  will	 normally  not want to use this	option as lrzsz	is the
	      only zmodem which	understands what to  do	 (private  extension).
	      You  might want to use this if you have to use zmodem (for which
	      reason whatever),	and cannot use the --tcp option	of  lsz	 (per-
	      haps  because your telnet	doesn't	allow to spawn a local program
	      with stdin/stdout	connected to the remote	side).

	      If you use this option you have to start	lsz  with  the	--tcp-
	      client ADDRESS:PORT option.  lrz will print the address and port
	      on startup.

	      Use of this option imposes a security risk, somebody else	 could
	      connect to the port in between. See SECURITY for details.

       -u     Unlink the file after successful transmission.
       -U, --unrestrict
	      Turn  off	restricted mode	(this is not possible if running under
	      a	restricted shell).
       -w N, --windowsize N
	      Limit the	transmit window	size to	N bytes	(ZMODEM).
       -v, --verbose
	      Verbose output to	stderr.	More v's generate more output.
       -X, --xmodem
	      use XMODEM protocol.
       -y, --overwrite
	      Instruct a ZMODEM	receiving program to  overwrite	 any  existing
	      file with	the same name.
       -Y, --overwrite-or-skip
	      Instruct	a  ZMODEM  receiving program to	overwrite any existing
	      file with	the same name, and to skip any source  files  that  do
	      have a file with the same	pathname on the	destination system.
	      use ZMODEM protocol.
       -Z, --zmodem
	      use ZMODEM protocol.

       Restricted mode restricts pathnames to the current directory and	PUBDIR
       (usually	/var/spool/uucppublic) and/or subdirectories thereof, and dis-
       ables remote command execution.

       Restricted  mode	 is entered if the R option is given or	if lsz detects
       that it runs under a restricted shell or	if  the	 environment  variable
       ZMODEM_RESTRICTED is found.

       Restricted mode can be turned of	with the U option if not running under
       a restricted shell.

       Use of the
	      --tcp-client or --tcp-server options imposes a security risk, as
	      somebody	else  could  connect to	the port before	you do it, and
	      grab your	data. If there's strong	demand for a more secure  mode
	      i	might introduce	some sort of password challenge.

       ZNULLS may  be  used  to	 specify  the number of	nulls to send before a
	      ZDATA frame.

       SHELL  lsz recognizes a restricted shell	if this	variable includes  rsh
	      or rksh

	      lrz enters restricted mode if the	variable is set.

       TMPDIR If  this	environment variable is	set its	content	is used	as the
	      directory	to place in the	answer file  to	 a  timesync  request.
	      TMP  Used	instead	of TMPDIR if TMPDIR is not set.	If neither TM-
	      PDIR nor TMP is set /tmp will be used.

       ZMODEM File Transfer (Unix to DSZ/ZCOMM/Professional-YAM)
       % sz -a *.c
       This single command transfers all .c files in the current  Unix	direc-
       tory with conversion (-a) to end	of line	conventions appropriate	to the
       receiving environment.  With ZMODEM AutoDownload	enabled, Professional-
       YAM   and ZCOMM will automatically recieve the files after performing a
       security	check.

       % sz -Yan *.c *.h
       Send only the .c	and .h files that exist	on both	systems, and are newer
       on  the	sending	system than the	corresponding version on the receiving
       system, converting Unix to DOS text format.
       $ sz -\Yan file1.c file2.c file3.c foo.h	baz.h (R)(for VMS)

       ZMODEM Command Download (Unix to	Professional-YAM)
	   sz -c "c:;cd	/yam/dist"
	   sz -ya $(YD)/*.me
	   sz -yqb y*.exe
	   sz -c "cd /yam"
	   sz -i "!insms"
       This Makefile fragment uses sz to issue commands	to Professional-YAM to
       change  current	disk  and directory.  Next, sz transfers the .me files
       from the	$YD directory, commanding the receiver to  overwrite  the  old
       files  and  to convert from Unix	end of line conventions	to PC-DOS con-
       ventions.  The third line transfers some	.exe files.   The  fourth  and
       fifth  lines  command  Pro-YAM to change	directory and execute a	PC-DOS
       batch file insms	.  Since the batch file	takes considerable  time,  the
       -i form is used to allow	sz to exit immediately.

       XMODEM File Transfer (Unix to Crosstalk)
       % sx -a foo.c
       rx foo.c
       The  above  three commands transfer a single file from Unix to a	PC and
       Crosstalk with sz translating Unix newlines to DOS CR/LF.  This	combi-
       nation is much slower and far less reliable than	ZMODEM.

       "Caught signal 99" indicates the	program	was not	properly compiled, re-
       fer to "bibi(99)" in rbsb.c for details.

       rz(omen),   ZMODEM.DOC,	 YMODEM.DOC,   Professional-YAM,    crc(omen),
       sq(omen), todos(omen), tocpm(omen), tomac(omen),	yam(omen)

       Compile	time  options  required	 for various operating systems are de-
       scribed in the source file.

       The VMS version does not	support	wild cards.  Because of	VMS DCL, upper
       case option letters muse	be represented by \ proceding the letter.

       The current VMS version does not	support	XMODEM,	XMODEM-1k, or YMODEM.

       VMS C Standard I/O and RMS may interact to modify the file contents.

       32 bit CRC code courtesy	Gary S.	Brown.

       sz.c, crctab.c, rbsb.c, zm.c, zmodem.h Unix source files

       sz.c,  crctab.c,	 vrzsz.c,  zm.c,  zmodem.h,  vmodem.h,	vvmodem.c, VMS
       source files.

       /tmp/szlog stores debugging output (sz -vv) (szlog on VMS).

       The command "sz -T file"	exercises the Attn sequence error recovery  by
       commanding  errors  with	 unterminated  packets.	 The receiving program
       should complain five times about	binary data packets  being  too	 long.
       Each  time sz is	interrupted, it	should send a ZDATA header followed by
       another defective packet.  If the receiver does not  detect  five  long
       data packets, the Attn sequence is not interrupting the sender, and the
       Myattn string in	sz.c must be modified.

       After 5 packets,	sz stops the "transfer"	and prints the total number of
       characters  "sent"  (Tcount).   The  difference between Tcount and 5120
       represents the number of	characters stored in various buffers when  the
       Attn sequence is	generated.

       Calling	sz  from  most versions	of cu(1) doesn't work because cu's re-
       ceive process fights sz for characters from the modem.

       On at least one BSD system, sz would hang or exit when it got within  a
       few  kilobytes  of the end of file.  Using the "-w 8192"	flag fixed the
       problem.	 The real cause	is unknown, perhaps a bug in  the  kernel  TTY
       output routines.

       Programs	 that  do  not	properly implement the specified file transfer
       protocol	may cause sz to	"hang" the port	for a  minute  or  two.	  This
       problem	is  corrected by using ZCOMM, Pro-YAM, or other	program	with a
       correct implementation of the specified protocol.

       Many programs claiming to support YMODEM	only support  XMODEM  with  1k
       blocks, and they	often don't get	that quite right.

       XMODEM  transfers  add up to 127	garbage	bytes per file.	 XMODEM-1k and
       YMODEM-1k transfers use 128 byte	blocks to avoid	extra padding.

       YMODEM programs use the file length transmitted at the beginning	of the
       transfer	 to prune the file to the correct length; this may cause prob-
       lems with source	files that grow	during the  course  of	the  transfer.
       This  problem  does not pertain to ZMODEM transfers, which preserve the
       exact file length unconditionally.

       Most ZMODEM options are merely passed to	the receiving program; some do
       not implement all these options.

       Circular	 buffering and a ZMODEM	sliding	window should be used when in-
       put is from pipes instead of acknowledging frames each 1024 bytes.   If
       no  files  can  be opened, sz sends a ZMODEM command to echo a suitable
       complaint; perhaps it should check for the presence of at least one ac-
       cessible	 file before getting hot and bothered.	The test mode leaves a
       zero length file	on the receiving system.

       A few high speed	modems have a firmware bug that	drops characters  when
       the  direction of high speed transmissson is reversed.  The environment
       variable	ZNULLS may be used to specify the number of nulls to send  be-
       fore  a ZDATA frame.  Values of 101 for a 4.77 mHz PC and 124 for an AT
       are typical.

lrzsz-0.12b			   2.6.1996				 SZ(1)


Want to link to this manual page? Use this URL:

home | help