Date: Wed, 18 Apr 2018 20:20:30 -0600 From: Gary Aitken <freebsd@dreamchaser.org> To: Polytropon <freebsd@edvax.de> Cc: FreeBSD Mailing List <freebsd-questions@freebsd.org> Subject: Re: tar xf foo -- how to restore symlink? Message-ID: <9902b54d-4684-6ba6-a08b-f3d9504c1273@dreamchaser.org> In-Reply-To: <20180418063005.056e321d.freebsd@edvax.de> References: <5ff313cf-6148-be90-0195-7d21f1f836ac@dreamchaser.org> <20180418063005.056e321d.freebsd@edvax.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On 04/17/18 22:30, Polytropon wrote: > On Tue, 17 Apr 2018 22:20:23 -0600, Gary Aitken wrote: >> I've got a tarball with an archived symlink and its contents. The >> symlink points to another directory in the tarball, and the tarball >> contains copies of the files in the symlinked directory. >> >> A normal extract fails with the message: $ tar -xf >> nufraw-0.41.tar.gz nufraw-0.41/doc-pak: Can't replace existing >> directory with non-directory >> >> What's the right way to deal with this? >> >> How do I get tar to restore the symlink as a symlink? -k and >> --exclude allow tar to continue unpacking, but don't restore the >> symlink as such. >> >> "man tar" doesn't seem to have what I want but I'm probably blind. > > Have you checked if -P or -U result in the intended behaviour? no, they didn't seem appropriate > -P, --absolute-paths Preserve pathnames. By default, absolute > pathnames (those that begin with a / character) have the leading > slash removed both when creating archives and extracting from them. > Also, tar will refuse to extract archive entries whose pathnames > contain .. or whose target directory would be altered by a symlink. > This option suppresses these behaviors. The archive is relative, not absolute > -U, --unlink, --unlink-first (x mode only) Unlink files before > creating them. This can be a minor performance optimization if most > files already exist, but can make things slower if most files do not > already exist. This flag also causes tar to remove intervening > directory symlinks instead of reporting an error. See the SECURITY > section below for more details. Creates duplicate directories, rather than a symlink. > Check "man tar" for "symlink". :-) Did that, didn't find anything useful. But then I don't always read so well, much less comprehend... That's why I asked :-) Gary
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9902b54d-4684-6ba6-a08b-f3d9504c1273>