Seth Woolley's Man Viewer

lsz(1) - sb, sx, sz - XMODEM, YMODEM, ZMODEM file send - man 1 lsz

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

SZ(1)                                                                    SZ(1)

       sx, sb, sz - XMODEM, YMODEM, ZMODEM file(1,n) send(2,n)

       sz [-+8abdefkLlNnopqTtuvyY] file(1,n) ...
       sb [-adfkqtuv] file(1,n) ...
       sx [-akqtuv] file(1,n)
       sz [-oqtv] -c COMMAND
       sz [-oqtv] -i COMMAND
       sz -TT

       Sz  uses the ZMODEM, YMODEM or XMODEM error(8,n) correcting protocol to send(2,n)
       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(1,n) transfers compared to XMODEM.  In addi-
       tion to a friendly user interface, ZMODEM  provides  Personal  Computer
       and  other  users(1,5)  an  efficient,  accurate,  and  robust file(1,n) 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(1,n) management features include AutoDownload (Automatic  file(1,n)
       Download  initiated  without  user intervention), Display of individual
       and total file(1,n) lengths and transmission time(1,2,n) estimates, Crash Recovery,
       selective  file(1,n)  transfers,  and  preservation  of  exact file(1,n) date and

       Output from another program may be piped  to  sz  for  transmission  by
       denoting 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(7,n,1 builtins), that is used instead.  In this case, the Unix command:
                             ls -l | ONAME=con sz -ay -
       will  send(2,n)  a  "file(1,n)"  to  the  PC-DOS  console(4,n) display.  The -y option
       instructs the receiver to open(2,3,n) the file(1,n)  for  writing  unconditionally.
       The  -a  option  causes the receiver to convert Unix newlines to PC-DOS
       carriage 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
       receiver, sb supports YMODEM-g with "cbreak" tty(1,4)  mode,  XON/XOFF  flow
       control,  and  interrupt  character set(7,n,1 builtins) to CAN (^X).  YMODEM-g (Profes-
       sional-YAM g option) increases  throughput  over  error(8,n)  free  channels
       (direct  connection, X.PC, etc.)  by not acknowledging each transmitted

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

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

       If  sz  is  invoked  with $SHELL set(7,n,1 builtins) and iff that variable contains the
       string(3,n)  rsh  ,  rbash  or  rksh  (restricted  shell),  sz  operates  in(1,8)
       restricted  mode.   Restricted  mode restricts pathnames to the current
       directory 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(7,n,1 builtins)  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(1,n) (ZMODEM only).
       -2, --twostop
              use two stop bits (if(3,n) 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(1,8) the bbs world. (ZMODEM
              Start with 8KB blocksize. Like --try-8k.
       -a, --ascii
              Convert NL characters in(1,8) the transmitted file(1,n) to CR/LF.  This is
              done  by  the  sender for XMODEM and YMODEM, by the receiver for
       -b, --binary
              (ZMODEM) Binary override: transfer file(1,n) 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(5,8)  use  a
              buffer  large  enough  to buffer the whole file. Be careful with
              this option - things normally get  worse,  not  better,  if(3,n)  the
              machine starts to swap.

              Using  this  option  turns  of memory mapping of the input file.
              This increases memory and cpu(5,8,8 cpu-ldap) usage.
       -c COMMAND, --command COMMAND
              Send COMMAND to the receiver for  execution,  return  with  COM-
              MANDs exit(3,n,1 builtins) status.
       -C N, --command-tries N
              Retry to send(2,n) command N times (default: 11).
       -d, --dot-to-slash
              Change  all instances of "." to "/" in(1,8) 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(1,8) the stem, a "."  is  inserted  to  allow  a
              total 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(1,2,n) the new file(1,n) if(3,n) a file(1,n) 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(1,n)
              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(8,n)
              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(3,n) BPS-Rate (Bytes Per Second) falls below N
              for a certain time(1,2,n) (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(1,n) if(3,n)  destination  file(1,n)  does  not  exist.
              Overwrite destination file(1,n) if(3,n) source file(1,n) is newer than the des-
              tination file.
       -N, --newer-or-longer
              (ZMODEM) Send each file(1,n) if(3,n)  destination  file(1,n)  does  not  exist.
              Overwrite  destination  file(1,n)  if(3,n)  source file(1,n) 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(2,n,1 builtins) timeout(1,3x,3x cbreak) handling. This makes lsz hang if(3,n) the  other
              side doesn't send(2,n) anything, but increases performance (not much)
              and decreases system load(7,n) (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(3,n) the destination file(1,n) 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(1,n) transfer.  If the  source  file(1,n)
              is  longer  than the destination file(1,n), the transfer commences at
              the offset in(1,8) the source file(1,n) 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,
              using +N instead of HH:MM, stops transmission in(1,8) 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(7,n,1 builtins) at configure time.
              This option is ignored if(3,n) no syslog(2,3,5,3 Sys::Syslog) support is compiled in.
       -t TIM, --timeout TIM
              Change timeout(1,3x,3x cbreak) 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(1,8) the normal case (but be careful - ^P might
              be useful if(3,n) connected through a terminal server).
       --tcp  Try to initiate a TCP/IP connection. lsz will ask the  receiving
              zmodem  to  open(2,3,n)  a  TCP/IP  connection.  All handshaking (which
              address / 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(3,n) 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(1,8) between. See SECURITY for details.
       --tcp-client ADDRESS:PORT
              Act as a tcp/ip(7,8) client: Connect to the given port.

              See --tcp-server for more information.

              Act  as  a server: Open a socket(2,7,n), 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(3,n) 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(1,8) between. See SECURITY for details.

       -u     Unlink the file(1,n) after successful transmission.
       -U, --unrestrict
              Turn off restricted mode (this is not possible if(3,n) 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(1,n) with the same name.
       -Y, --overwrite-or-skip
              Instruct a ZMODEM receiving program to  overwrite  any  existing
              file(1,n)  with  the  same name, and to skip any source files that do
              have a file(1,n) 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(3,n) the R option is given or if(3,n)  lsz  detects
       that  it  runs  under a restricted shell or if(3,n) the environment variable
       ZMODEM_RESTRICTED is found.

       Restricted mode can be turned of with the U option if(3,n) 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(1,3) of password challenge.

       ZNULLS may be used to specify the number of  nulls  to  send(2,n)  before  a
              ZDATA frame.

       SHELL  lsz  recognizes a restricted shell if(3,n) this variable includes rsh
              or rksh

              lrz enters restricted mode if(3,n) the variable is set.

       TMPDIR If this environment variable is set(7,n,1 builtins) its content is used  as  the
              directory  to  place  in(1,8)  the answer file(1,n) to a timesync request.
              TMP Used instead of TMPDIR if(3,n) TMPDIR  is  not  set.  If  neither
              TMPDIR nor TMP is set(7,n,1 builtins) /tmp will be used.

       ZMODEM File Transfer (Unix to DSZ/ZCOMM/Professional-YAM)
       % sz -a *.c
       This  single  command transfers all .c files in(1,8) 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(1,3,5) on  the  receiving
       system, converting Unix to DOS text format.
       $ sz -\Yan file1.c file2.c file3.c foo.h baz.h (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(1,n)  insms .  Since the batch file(1,n) takes considerable time(1,2,n), the
       -i form is used to allow sz to exit(3,n,1 builtins) immediately.

       XMODEM File Transfer (Unix to Crosstalk)
       % sx -a foo.c
       rx foo.c
       The above three commands transfer a single file(1,n) 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(1,3) reliable than ZMODEM.

       "Caught signal(2,7) 99" indicates the program  was  not  properly  compiled,
       refer to "bibi(99)" in(1,8) 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(1,2,n)  options  required  for  various  operating  systems  are
       described in(1,8) the source file.

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

       The current VMS version(1,3,5) does not support XMODEM, XMODEM-1k, or  YMODEM.

       VMS C Standard I/O and RMS may interact to modify the file(1,n) 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(1,n)" exercises the Attn sequence error(8,n) recovery  by
       commanding  errors  with  unterminated  packets.  The receiving program
       should complain five times about binary data packets  being  too  long.
       Each  time(1,2,n) sz is interrupted, it should send(2,n) 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(3,n) in(1,8) 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(1,8) various buffers when  the
       Attn sequence is generated.

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

       On at least one BSD system, sz would hang or exit(3,n,1 builtins) 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(1,8)  the  kernel  TTY
       output routines.

       Programs  that  do  not  properly implement the specified file(1,n) 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(1,n) length transmitted at the beginning of the
       transfer  to prune the file(1,n) 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(1,n) 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
       input is from pipes instead of acknowledging frames  each  1024  bytes.
       If no files can be opened, sz sends a ZMODEM command to echo(1,3x,1 builtins) a suitable
       complaint; perhaps it should check for the presence  of  at  least  one
       accessible  file(1,n) before getting hot and bothered.  The test mode leaves
       a zero length file(1,n) 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(2,n)
       before  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)

References for this manual (incoming links)