aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--man/man1/9p.148
-rw-r--r--src/cmd/9p.c12
2 files changed, 46 insertions, 14 deletions
diff --git a/man/man1/9p.1 b/man/man1/9p.1
index c7000fba..cac024a0 100644
--- a/man/man1/9p.1
+++ b/man/man1/9p.1
@@ -4,24 +4,21 @@
.SH SYNOPSIS
.B 9p
[
-.B -a
-.I addr
+.I options
]
.B read
.I path
.br
.B 9p
[
-.B -a
-.I addr
+.I options
]
.B readfd
.I path
.PP
.B 9p
[
-.B -a
-.I addr
+.I options
]
.B write
[
@@ -31,28 +28,49 @@
.br
.B 9p
[
-.B -a
-.I addr
+.I options
]
.B writefd
.I path
.PP
.B 9p
[
-.B -a
-.I addr
+.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
.PP
The first argument is a command, one of:
.TP
@@ -101,6 +119,16 @@ Print errors, but don't give up.
.B Rdwr
is useful for interacting with servers like
.IR factotum (4).
+.TP
+.B ls
+Print a directory listing in the format of
+.IR ls (1).
+The
+.B -d
+and
+.B -l
+flags have the same meaning as in
+.IR ls .
.PD
.PP
.I 9p
diff --git a/src/cmd/9p.c b/src/cmd/9p.c
index 22446b2e..909bfeb6 100644
--- a/src/cmd/9p.c
+++ b/src/cmd/9p.c
@@ -12,7 +12,7 @@ char *addr;
void
usage(void)
{
- fprint(2, "usage: 9p [-a address] cmd args...\n");
+ fprint(2, "usage: 9p [-a address] [-A aname] cmd args...\n");
fprint(2, "possible cmds:\n");
fprint(2, " read name\n");
fprint(2, " readfd name\n");
@@ -25,6 +25,7 @@ usage(void)
threadexitsall("usage");
}
+char *aname;
void xread(int, char**);
void xwrite(int, char**);
void xreadfd(int, char**);
@@ -53,6 +54,9 @@ threadmain(int argc, char **argv)
int i;
ARGBEGIN{
+ case 'A':
+ aname = EARGF(usage());
+ break;
case 'a':
addr = EARGF(usage());
if(strchr(addr, '!') == nil)
@@ -94,15 +98,15 @@ xparse(char *name, char **path)
else
*p++ = 0;
*path = p;
- fs = nsamount(name, "");
+ fs = nsamount(name, aname);
if(fs == nil)
sysfatal("mount: %r");
}else{
*path = name;
if((fd = dial(addr, nil, nil, nil)) < 0)
sysfatal("dial: %r");
- if((fs = fsamount(fd, "")) == nil)
- sysfatal("fsmount: %r");
+ if((fs = fsamount(fd, aname)) == nil)
+ sysfatal("fsamount: %r");
}
return fs;
}