Sponsored Content
Top Forums Shell Programming and Scripting Untar specific directory and strip leading directories Post 302498267 by DC Slick on Sunday 20th of February 2011 11:45:39 PM
Old 02-21-2011
Untar specific directory and strip leading directories

Ok so I know the title was probably confusing so here goes: I have a tarball (gzipped) that has a nested directory structure . For example:

Code:
 my.tar.gz (contents)
           [.]
             ---[var]
             ---[var]---[foo]
             ---[var]---[foo]---[bar]
             ---[var]---[foo]---[bar]---[dir]
             ---[var]---[foo]---[bar]---[dir]---[thats]
             ---[var]---[foo]---[bar]---[dir]---[thats]---[nested]

What I'm having the hardest time doing is extracting the directory [dir]--[thats]---[nested] ONLY. So no /var/foo/bar before it, just that directory and it's subdirectories. Real world dir/thats/nested/ is about 6 levels down. I'm restoring from the tarball and /dir/thats/nested is the actual directory on my box. So when i extract from it, i want it to overwrite /dir/thats/nested ON MY BOX. Kinda frustrated...I'll accept any good working solution for this at this point. Basically trying to not have to copy the tarball to the / directory to get it to overwrite /dir/thats/nested.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Strip leading and trailing spaces only in a shell variable with embedded spaces

I am trying to strip all leading and trailing spaces of a shell variable using either awk or sed or any other utility, however unscuccessful and need your help. echo $SH_VAR | command_line Syntax. The SH_VAR contains embedded spaces which needs to be preserved. I need only for the leading and... (6 Replies)
Discussion started by: jerardfjay
6 Replies

2. Shell Programming and Scripting

unTar a specific file from remote

During tar, the command used is tar cvf - * | remsh system_name dd of=/dev/rmt/0m bs=10k To untar all, we used remsh system_name "dd if=/dev/rmt/0m ibs=10k" | tar xvf - Question? How to untar a specific file from remote? Thanks alot... (2 Replies)
Discussion started by: gelbvonn
2 Replies

3. UNIX for Dummies Questions & Answers

How can you UnTar files to a different directory?

Suppose you have a TAR file created with a different directory structure and you need to UnTar (or explode) the files to a different directory structure. How can this be done? If TAR command cannot do this, are there any other alternatives (any other command) available to UnTar a .Tar file? ... (1 Reply)
Discussion started by: joshivaibhav
1 Replies

4. Shell Programming and Scripting

How to strip off the leading filename from 'wc -l' command

Hi... can anyone please tell how do i strip off the leading filename from the wc -l command.... when i fire command wc -l new1 ... its giving output as 14 new1 i want the output as just '14'... i need to use this value in the calculations in the later part of the script..... (2 Replies)
Discussion started by: swap21783
2 Replies

5. Shell Programming and Scripting

Find specific files only in current directory...not sub directories AIX

Hi, I have to find specific files only in the current directory...not in the sub directories. But when I use Find command ... it searches all the files in the current directory as well as in the subdirectories. I am using AIX-UNIX machine.Please help.. I am using the below command. And i am... (2 Replies)
Discussion started by: aakishore
2 Replies

6. Shell Programming and Scripting

Strip leading and numbers from a string.

Hello I have two vars loaded with $VAR1="ISOMETHING103" $VAR2="COTHERTHING04" I need to: 1) Strip the first char. Could be sed 's/^.//' 2) The number has it's rules. If it has "hundreds", it needs to be striped. If it is just two digits it shouldn't. So, for VAR1 output should be... (7 Replies)
Discussion started by: tristezo2k
7 Replies

7. UNIX for Dummies Questions & Answers

Removing directory with leading hyphen from root directory

I know that this basic question has been asked many times and solutions all over the internet, but none of the are working for me. I have a directory in the root directory, named "-p". # ls -l / total 198 <snip> drwxr-xr-x 4 root root 4096 Dec 3 14:18 opt drwxr-xr-x 2 root ... (2 Replies)
Discussion started by: edstevens
2 Replies

8. Shell Programming and Scripting

How to delete all the files and folders inside all the directories except some specific directory?

hi, i have a requirement to delete all the files from all the directories except some specific directories like archive and log. for example: there are following directories such as A B C D Archive E Log F which contains some sub directories and files. The requirement is to delete all the... (7 Replies)
Discussion started by: Little
7 Replies

9. Shell Programming and Scripting

Remove directories when specific file is in directory?

Hello :) I need little help i have following cmd: this only able to delete files but not folder which contain that file find /home/test/* -name "*.testfile" -type f -exec rm -i {} \; how to delete whole directory if file called somethingblahblah.testfile is there? Thanks you :) (3 Replies)
Discussion started by: ZerO13
3 Replies

10. Shell Programming and Scripting

Untar to a particular directory is Failing

Below are my system and tar details. bash-3.2$ uname -a SunOS mymac 5.10 Generic_150400-40 sun4v sparc sun4v bash-3.2$ which tar /usr/bin/tar I use this command to untar at the file at this location: /web/applications/configurations tar -xvf bent.tar -C... (18 Replies)
Discussion started by: mohtashims
18 Replies
Template::Plugin::File(3)				User Contributed Perl Documentation				 Template::Plugin::File(3)

NAME
Template::Plugin::File - Plugin providing information about files SYNOPSIS
[% USE File(filepath) %] [% File.path %] # full path [% File.name %] # filename [% File.dir %] # directory DESCRIPTION
This plugin provides an abstraction of a file. It can be used to fetch details about files from the file system, or to represent abstract files (e.g. when creating an index page) that may or may not exist on a file system. A file name or path should be specified as a constructor argument. e.g. [% USE File('foo.html') %] [% USE File('foo/bar/baz.html') %] [% USE File('/foo/bar/baz.html') %] The file should exist on the current file system (unless "nostat" option set, see below) as an absolute file when specified with as leading '"/"' as per '"/foo/bar/baz.html"', or otherwise as one relative to the current working directory. The constructor performs a "stat()" on the file and makes the 13 elements returned available as the plugin items: dev ino mode nlink uid gid rdev size atime mtime ctime blksize blocks e.g. [% USE File('/foo/bar/baz.html') %] [% File.mtime %] [% File.mode %] ... In addition, the "user" and "group" items are set to contain the user and group names as returned by calls to "getpwuid()" and "getgrgid()" for the file "uid" and "gid" elements, respectively. On Win32 platforms on which "getpwuid()" and "getgrid()" are not available, these values are undefined. [% USE File('/tmp/foo.html') %] [% File.uid %] # e.g. 500 [% File.user %] # e.g. abw This user/group lookup can be disabled by setting the "noid" option. [% USE File('/tmp/foo.html', noid=1) %] [% File.uid %] # e.g. 500 [% File.user %] # nothing The "isdir" flag will be set if the file is a directory. [% USE File('/tmp') %] [% File.isdir %] # 1 If the "stat()" on the file fails (e.g. file doesn't exists, bad permission, etc) then the constructor will throw a "File" exception. This can be caught within a "TRY...CATCH" block. [% TRY %] [% USE File('/tmp/myfile') %] File exists! [% CATCH File %] File error: [% error.info %] [% END %] Note the capitalisation of the exception type, '"File"', to indicate an error thrown by the "File" plugin, to distinguish it from a regular "file" exception thrown by the Template Toolkit. Note that the "File" plugin can also be referenced by the lower case name '"file"'. However, exceptions are always thrown of the "File" type, regardless of the capitalisation of the plugin named used. [% USE file('foo.html') %] [% file.mtime %] As with any other Template Toolkit plugin, an alternate name can be specified for the object created. [% USE foo = file('foo.html') %] [% foo.mtime %] The "nostat" option can be specified to prevent the plugin constructor from performing a "stat()" on the file specified. In this case, the file does not have to exist in the file system, no attempt will be made to verify that it does, and no error will be thrown if it doesn't. The entries for the items usually returned by "stat()" will be set empty. [% USE file('/some/where/over/the/rainbow.html', nostat=1) [% file.mtime %] # nothing METHODS
All "File" plugins, regardless of the "nostat" option, have set a number of items relating to the original path specified. path The full, original file path specified to the constructor. [% USE file('/foo/bar.html') %] [% file.path %] # /foo/bar.html name The name of the file without any leading directories. [% USE file('/foo/bar.html') %] [% file.name %] # bar.html dir The directory element of the path with the filename removed. [% USE file('/foo/bar.html') %] [% file.name %] # /foo ext The file extension, if any, appearing at the end of the path following a '"."' (not included in the extension). [% USE file('/foo/bar.html') %] [% file.ext %] # html home This contains a string of the form '"../.."' to represent the upward path from a file to its root directory. [% USE file('bar.html') %] [% file.home %] # nothing [% USE file('foo/bar.html') %] [% file.home %] # .. [% USE file('foo/bar/baz.html') %] [% file.home %] # ../.. root The "root" item can be specified as a constructor argument, indicating a root directory in which the named file resides. This is otherwise set empty. [% USE file('foo/bar.html', root='/tmp') %] [% file.root %] # /tmp abs This returns the absolute file path by constructing a path from the "root" and "path" options. [% USE file('foo/bar.html', root='/tmp') %] [% file.path %] # foo/bar.html [% file.root %] # /tmp [% file.abs %] # /tmp/foo/bar.html rel(path) This returns a relative path from the current file to another path specified as an argument. It is constructed by appending the path to the '"home"' item. [% USE file('foo/bar/baz.html') %] [% file.rel('wiz/waz.html') %] # ../../wiz/waz.html EXAMPLES
[% USE file('/foo/bar/baz.html') %] [% file.path %] # /foo/bar/baz.html [% file.dir %] # /foo/bar [% file.name %] # baz.html [% file.home %] # ../.. [% file.root %] # '' [% file.abs %] # /foo/bar/baz.html [% file.ext %] # html [% file.mtime %] # 987654321 [% file.atime %] # 987654321 [% file.uid %] # 500 [% file.user %] # abw [% USE file('foo.html') %] [% file.path %] # foo.html [% file.dir %] # '' [% file.name %] # foo.html [% file.root %] # '' [% file.home %] # '' [% file.abs %] # foo.html [% USE file('foo/bar/baz.html') %] [% file.path %] # foo/bar/baz.html [% file.dir %] # foo/bar [% file.name %] # baz.html [% file.root %] # '' [% file.home %] # ../.. [% file.abs %] # foo/bar/baz.html [% USE file('foo/bar/baz.html', root='/tmp') %] [% file.path %] # foo/bar/baz.html [% file.dir %] # foo/bar [% file.name %] # baz.html [% file.root %] # /tmp [% file.home %] # ../.. [% file.abs %] # /tmp/foo/bar/baz.html # calculate other file paths relative to this file and its root [% USE file('foo/bar/baz.html', root => '/tmp/tt2') %] [% file.path('baz/qux.html') %] # ../../baz/qux.html [% file.dir('wiz/woz.html') %] # ../../wiz/woz.html AUTHORS
Michael Stevens wrote the original "Directory" plugin on which this is based. Andy Wardley split it into separate "File" and "Directory" plugins, added some extra code and documentation for "VIEW" support, and made a few other minor tweaks. COPYRIGHT
Copyright 2000-2007 Michael Stevens, Andy Wardley. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO
Template::Plugin, Template::Plugin::Directory, Template::View perl v5.12.1 2008-11-13 Template::Plugin::File(3)
All times are GMT -4. The time now is 11:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy