Search code examples
linuxcopyfilesystemsstructurersync

copy a directory structure with file names without content


I have a huge directory structure of movie files. For analysis of that structure I want to copy the entire directory structure, i.e. folders and files however I don't want to copy all the movie files while I want to keep there file names. Ideally I get zero-byte files with the original movie file name.

I tried to and then rsync to my remote machine which didn't fetch the link files.

Any ideas how to do that w/o writing scripts?


Solution

  • You can use find:

    find src/ -type d -exec mkdir -p dest/{} \; \
           -o -type f -exec touch dest/{} \;
    

    Find directory (-d) under (src/) and create (mkdir -p) them under dest/ or (-o) find files (-f) and touch them under dest/.

    This will result in:

    dest/src/<file-structre>
    

    You can user mv creatively to resolve this issue.


    Other (partial) solution can be achieved with rsync:

    rsync -a --filter="-! */" sorce_dir/ target_dir/
    

    The trick here is the --filter=RULE option that excludes (-) everything that is not (!) a directory (*/)