@node nncp-file
@pindex nncp-file
@section nncp-file

@example
$ nncp-file [options] [-chunked INT] SRC      NODE:[DST]
$ nncp-file [options] [-chunked INT] SRC area:AREA:[DST]
@end example

Send @file{SRC} file to remote @option{NODE}. @file{DST} specifies
destination file name in remote's @ref{CfgIncoming, incoming}
directory. If this file already exists there, then counter will be
appended to it.

This command queues file in @ref{Spool, spool} directory immediately --
so pay attention that sending 2 GiB file will create 2 GiB outbound
encrypted packet.

If @file{SRC} equals to @file{-}, to data is read from @code{stdin}.

If @file{SRC} points to directory, then
@url{https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_01,
pax archive} will be created on the fly with directory contents and
destination filename @file{.tar} appended. It @strong{won't} contain any
entities metainformation, except for modification time with the names.
UID/GID are set to zero. Directories have 777 permissions, files have
666, for being friendly with @command{umask}. Everything except
directories and regulars files is skipped. Also each entity will have
comment like @verb{|Autogenerated by NNCP version X.Y.Z built with goXXX|}.
For more precise metainformation and various file objects storage use
external @command{tar} command piped in.

If @option{-chunked} is specified, then source file will be split
@ref{Chunked, on chunks}. @option{INT} is the desired chunk size in
KiBs. This mode is more CPU hungry. Pay attention that chunk is saved in
spool directory immediately and it is not deleted if any error occurs.
@option{-minsize} option is applied per each chunk. Do not forget about
@ref{ChunkedZFS, possible} ZFS deduplication issues. Zero
@option{-chunked} disables chunked transmission.

If @ref{CfgNotify, notification} is enabled on the remote side for
file transmissions, then it will sent simple letter after successful
file receiving.

If you use @option{area:AREA} instead of @option{NODE}, then
@ref{Multicast, multicast} packet will be sent to specified area. That
creates outgoing packet to the @strong{self} node, so you have to run
@ref{nncp-toss, tossing} to create outgoing packets to required subscribers.
