[Rd] should dir(all=TRUE) return "." and ".."?
Martin Maechler
maechler at stat.math.ethz.ch
Fri Sep 23 18:59:33 CEST 2011
>>>>> William Dunlap <wdunlap at tibco.com>
>>>>> on Fri, 23 Sep 2011 15:49:43 +0000 writes:
> 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.
:-)
Thank you, Bill.
I agree that there is a problem. It seems wrong to me that
dir(all.files=TRUE, recursive=TRUE, include.dirs=TRUE)
*omits* the (symbolic) directories '.' and '..' when simple
dir(all.files=TRUE)
includes them.
However, from a strict description (of the argument names, and
also the help file) I would have expected that both would *include*
rather than omit them.
But then --the scenario abov, and also more general
reasoning -- would rather suggest to follow your proposal.
Martin
>> dir.create(tdir <- tempfile("tdir"))
>> file.create(file.path(tdir, c(".dotFile", "noDotFile")))
> [1] TRUE TRUE
>> dir.create(file.path(tdir, ".dotDir"))
>> file.create(file.path(tdir, ".dotDir",
>> c("noDotFileInDotDir", ".dotFileInDotDir")))
> [1] TRUE TRUE
>> 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