Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2007-05-02 22:54:40
Size: 558
Editor: redondos
Comment:
Revision 4 as of 2008-11-22 14:09:45
Size: 560
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[Anchor(faq10)]] <<Anchor(faq10)>>
Line 4: Line 4:
{{{
    cd "$srcdir"
    find . -type d -print | cpio -pdumv "$dstdir"
}}}
 {{{
 cd "$srcdir"
 find . -type d -print | cpio -pdumv "$dstdir"}}}
Line 9: Line 8:
or with GNU-{{{tar}}}, and less obscure syntax: or with GNU {{{tar}}}, and more verbose syntax:
Line 11: Line 10:
{{{
    cd "$srcdir"
    find . -type d -print | tar c --files-from - --no-recursion | tar x --directory "$dstdir"
}}}
 {{{
 cd "$srcdir"
 find . -type d -print | tar c --files-from - --no-recursion |
  
tar x --directory "$dstdir"}}}
Line 16: Line 15:
This creates a list of directory names with find, non-recursively adds just the directories to an archive, and pipes it to a second tar instance to extract it at the target location. This creates a list of directory names with {{{find}}}, non-recursively adds just the directories to an archive, and pipes it to a second {{{tar}}} instance to extract it at the target location.

How can I recreate a directory structure, without the files?

With the cpio program:

  •  cd "$srcdir"
     find . -type d -print | cpio -pdumv "$dstdir"

or with GNU tar, and more verbose syntax:

  •  cd "$srcdir"
     find . -type d -print | tar c --files-from - --no-recursion |
       tar x --directory "$dstdir"

This creates a list of directory names with find, non-recursively adds just the directories to an archive, and pipes it to a second tar instance to extract it at the target location.

BashFAQ/010 (last edited 2023-09-22 06:29:48 by StephaneChazelas)