.TH 9P 1 .SH NAME 9p \- read and write files on a 9P server .SH SYNOPSIS .B 9p [ .I options ] .B read .I path .br .B 9p [ .I options ] .B readfd .I path .PP .B 9p [ .I options ] .B write [ .B -l ] .I path .br .B 9p [ .I options ] .B writefd .I path .PP .B 9p [ .I options ] .B stat .I path .PP .B 9p [ .I options ] .B rdwr .I path .PP .B 9p [ .I options ] .B ls [ .B -dl ] .I path... .SH DESCRIPTION .I 9p is a trivial 9P client that can access a single file on a 9P server. It can be useful for manual interaction with a 9P server or for accessing simple 9P services from within shell scripts. The common options are: .TP .B -a\fI addr dial the server at .I addr .TP .B -A\fI aname attach to the file system named .I aname .TP .B -n mount without authentication .PP The first argument is a command, one of: .TP .B read print the contents of .I path to standard output .TP .B write write data on standard input to .IR path ; the .B -l option causes .I write to write one line at a time .TP .BR readfd ", " writefd like .B read and .B write but use .IR openfd (9p) instead of .IR open ; this masks errors and is mainly useful for debugging the implementation of .I openfd .TP .B stat execute .I stat (9p) on .I path and print the result .TP .B rdwr Open .I path for reading and writing. Then repeat until end-of-file on standard input: copy a line from the file to standard output, copy a line from standard input to the file. Print errors, but don't give up. .B Rdwr is useful for interacting with servers like .MR factotum (4) . .TP .B ls Print a directory listing in the format of .MR ls (1) . The .B -d and .B -l flags have the same meaning as in .IR ls . .PD .PP .I 9p dials .I address to connect to the 9P server. If the .B -a option is not given, .I 9p requires the .I path to be of the form .IB service / subpath \fR; it connects to the Unix domain socket .I service in the name space directory (see .MR intro (4) ) and then accesses .IR subpath . .SH EXAMPLE To update .MR plumber (4) 's copy of your plumbing rules after editing .BR $HOME/lib/plumbing : .IP .EX cat $HOME/lib/plumbing | 9p write plumb/rules .EE .PP To display the contents of the current .MR acme (4) window: .IP .EX 9p read acme/$winid/body .EE .SH SOURCE .B \*9/src/cmd/9p.c .SH SEE ALSO .MR intro (4) , .IR intro (9p), .MR 9pclient (3)