commit 011090f03b7a9f83646dbdd24f321b93e6733a73 from: rsc date: Mon Mar 21 17:27:25 2005 UTC add -A commit - 5c84c448b82c7bfdfeaae533783aa09317656e86 commit + 011090f03b7a9f83646dbdd24f321b93e6733a73 blob - c7000fbae1948ca26ef749c4ba875cee622f00c5 blob + cac024a0f366da89c939046c743acf156bbc2b75 --- man/man1/9p.1 +++ 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 blob - 22446b2e6dc7732282e13f8b2d555bad1f42295f blob + 909bfeb6492cf2136aab87b5dd5915e796479d42 --- src/cmd/9p.c +++ 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; }