print only first level directory name when copying files

Perry Hutchison pluto at agora.rdrop.com
Fri Aug 4 04:13:51 UTC 2023


Perry Hutchison via rsync <rsync at lists.samba.org> wrote:

> Fourhundred Thecat via rsync <400thecat at lists.samba.org> wrote:
>
> > I am copying /mnt/foo to /mnt/bar/
> >
> >    rsync --info=name1,del2 -rl /mnt/foo /mnt/bar/
> >
> > /mnt/foo contains deep directory structure, ie:
> >
> >    /mnt/foo/aaa/
> >    /mnt/foo/aaa/somestuff/
> >    /mnt/foo/aaa/somestuff/file1
> >
> >    /mnt/foo/bbb/
> >    /mnt/foo/bbb/someotherstuff/
> >    /mnt/foo/bbb/someotherstuff/file2
> >
> > I am not interested in details which individual files were copied, just
> > the main directory. Is it somehow possible for rsync to only report the
> > first level directory?
> >
> > ie, to have output like this when copying:
> >
> >    /mnt/foo/aaa/
> >    /mnt/foo/bbb/
>
> Do you need this reported in real time (e.g. to monitor progress),
> or just as a logfile?  If the latter, filtering the output with grep
> might work -- something like this (untested):
>
>   rsync --info=name1,del2 -rl /mnt/foo /mnt/bar/ | egrep '^/.*/.*/.*/$'

On second thought, that grep will match any directory name having 3
*or more* levels.  This:

  rsync --info=name1,del2 -rl /mnt/foo /mnt/bar/ | egrep '^/[^/]*/[^/]*/[^/]*/$'

should match only those with exactly 3 levels.



More information about the rsync mailing list