20

The only solution I've encountered is to use regular expressions and recursively replace the first directory until you get a word with no slashes.

gsub("/\\w*/","/",gsub("/\\w*/","/",getwd()))

Is there anything slightly more elegant? (and more portable?)

Roman Luštrik
  • 69,533
  • 24
  • 154
  • 197
M. Tibbits
  • 8,400
  • 8
  • 44
  • 59

2 Answers2

44

Your example code doesn't work for me, but you're probably looking for either basename or dirname:

> getwd()
[1] "C:/cvswork/data"
> basename(getwd())
[1] "data"
> dirname(getwd())
[1] "C:/cvswork"
Joshua Ulrich
  • 173,410
  • 32
  • 338
  • 418
7

If you didn't know basename (and I didn't), you could have used this:

tail(strsplit(getwd(), "/")[[1]], 1)
IRTFM
  • 258,963
  • 21
  • 364
  • 487