Date: Sun, 11 Aug 1996 17:29:00 -0400 (EDT) From: Chuck Robey <chuckr@glue.umd.edu> To: patl@asimov.volant.org Cc: FreeBSD-Ports@freebsd.org Subject: Re: using tar Message-ID: <Pine.OSF.3.95.960811172755.10084I-100000@thurston.eng.umd.edu> In-Reply-To: <9608112122.AA01482@asimov.volant.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 11 Aug 1996 patl@asimov.volant.org wrote: > |> > |> cd <source_dir> > |> > |> tar cf - | ( cd <dest_dir>; tar xvfBp - ) > |> > > |> > An arguably better way to copy an entire directory tree within a single > |> > machine is: > |> > > |> > cd <source_dir> > |> > find . -depth -print | cpio -pdmv <dest_dir> > |> > |> You aren't the first person to point that method out (Joerg told me about > |> it too) but I hadn't had any argument about it being 'arguably better'. > |> Could/would you expand on that? > > Hmm. It's been a couple of years since I switched over; and I no longer > recall all of the reasons. I believe the most convincing ones involved > the treatment of sparse filenames and very long pathnames, empty directories, > device files, etc. (Most people don't realize that the traditional tar > format has a filename length limit. According to the Solaris man page, > the total length is 255 characters, with no more than 155 for the path > and 100 for the filename. The FreeBSD man page doesn't mention limits; > but FreeBSD uses GNU tar, which can use extended file formats.) > > Using a GNU tar pipe with appropriate options might work as well as the > find|cpio pipe; but it would be a much more cumbersome command. Also, > every byte of every file is read and written twice in the tar|tar pipe. > (Each tar has both diskfile and pipe I/O.) In the find|cpio pipe only > directories are actually read by the find; and only the filenames are > passed through the pipe. That means fewer I/O operations and fewer > context switches; for better performance. Ahh, those do sound like good reasons, ok, I accept the bias then, and I'll start using that idiom. Thanks for the explanation. ----------------------------+----------------------------------------------- Chuck Robey | Interests include any kind of voice or data chuckr@eng.umd.edu | communications topic, C programming, and Unix. 9120 Edmonston Ct #302 | Greenbelt, MD 20770 | I run Journey2 and n3lxx, both FreeBSD (301) 220-2114 | version 2.2 current -- and great FUN! ----------------------------+-----------------------------------------------
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.OSF.3.95.960811172755.10084I-100000>