[Rd] should dir(all=TRUE) return "." and ".."?

William Dunlap wdunlap at tibco.com
Fri Sep 23 17:49:43 CEST 2011

dir(all=TRUE) returns the file names "." and ".."
while dir(recursive=TRUE, all=TRUE, include.dirs=TRUE)
does not.  I always filter out the "." and ".." entries
and was wondering if anyone would mind if dir(all=TRUE)
just omitted them?  It might make recursive file operations
like cleaning out a directory safer, as
  unlink(recursive=TRUE, dir(all=TRUE, "dirToClean"))
might start attacking dirToClean/.., then dirToClean/../..,
etc., until your disk is empty.

  > dir.create(tdir <- tempfile("tdir"))
  > file.create(file.path(tdir, c(".dotFile", "noDotFile")))
  > dir.create(file.path(tdir, ".dotDir"))
  > file.create(file.path(tdir, ".dotDir", c("noDotFileInDotDir", ".dotFileInDotDir")))
  > dir(tdir, all=TRUE) # omit "." and ".." here?
  [1] "."         ".."        ".dotDir"   ".dotFile" 
  [5] "noDotFile"
  > dir(tdir, all=TRUE, recursive=TRUE, include.dirs=TRUE)
  [1] ".dotDir"                   ".dotDir/.dotFileInDotDir" 
  [3] ".dotDir/noDotFileInDotDir" ".dotFile"                 
  [5] "noDotFile"                

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 

More information about the R-devel mailing list