downloading only specific directories from directory tree
kmk at sanitarium.net
Wed Jan 10 23:27:11 UTC 2018
1. You don't appear to be including anything that is within the colon
dirs so they are being left out by --prune-empty-dirs.
2. Includes only override excludes that follow them. Since your debug
excludes are exceptions to the openSUSE_Leap_42.2/*** include they must
be before it not after it.
On 01/10/2018 05:46 PM, Istvan Gabor via rsync wrote:
> Dear Kevin:
> ~ 1 year ago your answer helped me to solve my problem.
> This time I would like to do a similar thing but little bit modified.
> I read again carefully INCLUDE/EXCLUDE PATTERN RULES section of rsync
> manual but still cannot comprehend every part of it.
> I understand I have to add include patterns first and exclude patterns
> second. But it is not clear if I have to add all the include patterns
> first and all the exclude patterns after them. Or do I have add
> include/exclude groups?
> Now I would like to mirror openSUSE_Leap_42.2 dirs from
> but only from specified directories and without files with debuginfo
> or debugsource patterns in their names.
> I tried this command:
> rsync -av --include-from=filters.txt --prune-empty-dirs \
> rsync://ftp.halifax.rwth-aachen.de/opensuse/repositories/ \
> where filters.txt contains:
> + /filesystems
> + /filesystems:
> + /games
> + /games:
> + /graphics
> + /graphics:
> + /hamradio
> + /hamradio:
> + /hardware
> + /hardware:
> + openSUSE_Leap_42.2/***
> - *debuginfo*.rpm
> - *debugsource*.rpm
> - *
> but it doesn't work the way I'd like.
> 1. The directories ending with : in their names are not mirrored.
> I tried eg /games: , /games\: and "/games:", none of these worked.
> 2. The other directories are mirrored but debuginfo and debugsource
> files are not excluded.
> I'd appreciate if you explained what the problem is and how to solve it.
> Thanks in advance,
> On Fri, 20 Jan 2017 18:15:00 -0500, Kevin Korb wrote:
>> An include only overrides an exclude that follows it. So, you would
>> need something like this:
>> + */
>> + openSUSE_13.2/***
>> - *
>> Then add --prune-empty-dirs to your rsync command line. I left off the
>> initial ** because it doesn't really mean anything unless openSUSE_13.2
>> isn't always the entire directory name in which case 1 * would do.
>> Another way to explain it is that by default everything is included. An
>> exclude rule makes exceptions. An include rule makes exceptions to the
>> exclude rule.
>> On 01/20/2017 06:08 PM, Istvan Gabor wrote:
>>> I have read rsync manual and several howtos on how to use rsync, still
>>> I don't know if it's doable what I want to do, and if yes, how.
>>> The scenario:
>>> I would like to make a local copy of openSUSE 13.2 repositories.
>>> I use openSUSE linux.
>>> The repos are located in a multi-level directory structure, eg:
>>> Let's call this directory the root dir.
>>> Each directory in the root has subdirectories, and one of the
>>> is named "openSUSE_13.2". The openSUSE_13.2 dir can be one, two, or more
>>> downstairs in the root dir, eg:
>>> There are plenty of directories in the root dir, and each
>>> subdirectory can
>>> have several subdirectories.
>>> Is it possible, using rsync, to download only all "openSUSE_13.2"
>>> directories with
>>> their contents, without specifying directly one by one every
>>> to be included or excluded?
>>> I tried to use filters.txt file with content:
>>> + **openSUSE_13.2/***
>>> with this command:
>>> rsync -av --include-from=filters.txt
>>> rsync://ftp.halifax.rwth-aachen.de/opensuse/repositories/ ./
>>> This downloads every directory. How can I exclude those are not
Kevin Korb Phone: (407) 252-6853
Systems Administrator Internet:
FutureQuest, Inc. Kevin at FutureQuest.net (work)
Orlando, Florida kmk at sanitarium.net (personal)
Web page: http://www.sanitarium.net/
PGP public key available on web site.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 224 bytes
Desc: OpenPGP digital signature
More information about the rsync