E.g. I am seeing: dir <- file.path(tempdir(), "test-tar") dir.create(dir) setwd(dir) dir.create("foo", showWarnings = FALSE) file.create("foo/bar.R") tar("test.tar", files = "foo/bar.R") dir.create("untarred") untar("test.tar", exdir = "untarred") list.files("untarred", recursive = TRUE) # character(0) As far as I can see, the documentation in `?tar` does not reflect that R's internal `tar` expects paths to directories, not files themselves. Although I would have preferred the files being included, or at least a warning / error that they would be excluded. Thanks, Kevin> sessionInfo()R version 3.1.1 Patched (2014-09-27 r66695) Platform: x86_64-w64-mingw32/x64 (64-bit) locale: [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C [5] LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] tools_3.1.1
Harris A. Jaffee
2014-Sep-30 19:28 UTC
[Rd] R's internal tar ignores files in sub-directories
Sounds like a bug to me, at least in documentation. I would say that it ignores them by accident. I doubt that skipping files is intended. The problem appears to be that the 'files' argument to tar() becomes the 'path' argument to list.files(), and the spec for 'path' is not a whole lot more illuminating. Only the Description in ?list.files refers to a _named directory_. Your tar call blindly does list.files("foo/bar.R"), which is empty, hence your undesired result, when it should only call list.files for directories. On Sep 30, 2014, at 2:14 PM, Kevin Ushey <kevinushey at gmail.com> wrote:> E.g. I am seeing: > > dir <- file.path(tempdir(), "test-tar") > dir.create(dir) > setwd(dir) > > dir.create("foo", showWarnings = FALSE) > file.create("foo/bar.R") > > tar("test.tar", files = "foo/bar.R") > dir.create("untarred") > untar("test.tar", exdir = "untarred") > list.files("untarred", recursive = TRUE) # character(0) > > As far as I can see, the documentation in `?tar` does not reflect that > R's internal `tar` expects paths to directories, not files themselves. > Although I would have preferred the files being included, or at least > a warning / error that they would be excluded. > > Thanks, > Kevin > >> sessionInfo() > R version 3.1.1 Patched (2014-09-27 r66695) > Platform: x86_64-w64-mingw32/x64 (64-bit) > > locale: > [1] LC_COLLATE=English_United States.1252 > [2] LC_CTYPE=English_United States.1252 > [3] LC_MONETARY=English_United States.1252 > [4] LC_NUMERIC=C > [5] LC_TIME=English_United States.1252 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > loaded via a namespace (and not attached): > [1] tools_3.1.1 > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel