Output of --list-only not as I expected for symlinks
Kevin Korb
kmk at sanitarium.net
Thu Sep 13 03:57:17 UTC 2018
Then that just leaves --dry-run. More flexibility you might not know:
If you double --itemize-changes it will show all the files it considers
including what it skips for being the same.
If you double -v you will get debugging for include/exclude rules.
On 09/12/2018 10:26 PM, Michael Hipp via rsync wrote:
> My apologies. I'm evidently not communicating very well.
>
> I am not asking for a list of what "needs to be transferred", I am
> looking for a list of those things that are "candidates to transfer". In
> other words, the source items minus exclusions/filters or anything else
> that will be ignored (by rsync).
>
> Is there any option for rsync that offers such a list?
>
>> find /path -type f -or -type d -print (or -ls)
>
> This tells me nothing about what *rsync* expects to do. In particular it
> won't consider rsync's filters/exclusions.
>
> Thanks,
> Michael
>
> On 2018-09-12 20:54, Kevin Korb via rsync wrote:
>> How would it know what needs to be transferred without looking at both
>> source and target? You are correct that it doesn't pay any attention to
>> the target because it doesn't need a target. If the source is remote
>> then it will connect to the remote to do a remote listing and if the
>> source is local then no connection is needed but then neither is rsync.
>> As far as obeying the recursive flag, so does ls.
>>
>> I didn't know it cared about exclude rules but you are right that it
>> does. Guess I never tried. I only ever used it when I was trying to
>> see what was on an rsync server.
>>
>> Anyway, if you want to list all the files and dirs but not symlinks and
>> others in a local tree:
>> find /path -type f -or -type d -print (or -ls)
>>
>> On 09/12/2018 07:53 PM, Michael Hipp via rsync wrote:
>>> Thank you. But I'm afraid I don't understand. The man entry reads:
>>>
>>> "--list-only
>>> This option will cause the source files to be listed instead of
>>> transferred. This option is inferred if there is a single source arg and
>>> no destination specified..."
>>>
>>> It doesn't say anything about "list remote files". In fact I am not sure
>>> why it would even contact the remote end. And the behavior does not
>>> change even if no destination is specified.
>>>
>>> As far as it ignoring the rest of the command line, note that it does
>>> obey exclusion rules. Symlinks seem to be the only anomaly in its
>>> output.
>>>
>>> I use --dry-run and --itemize-changes frequently. But I was trying to
>>> find something that would give me a correct list of the candidate source
>>> files but without having to make an expensive connect to the remote
>>> server. Any suggestions?
>>>
>>> Thanks,
>>> Michael Hipp
>>>
>>>
>>>
>>> On 2018-09-12 11:17, Kevin Korb via rsync wrote:
>>>> --list-only is simply a way to list remote files when you only have
>>>> access via rsync. It ignores the rest of the command line. You want
>>>> --dry-run (--itemize-changes would be a good idea too).
>>>>
>>>> On 09/12/2018 11:06 AM, Michael Hipp via rsync wrote:
>>>>> The output of --list-only isn't as I expected as regards symlinks.
>>>>> Here
>>>>> are my test files:
>>>>>
>>>>> $ ls ./src
>>>>> -rw------- 1 michael michael 0 2018-09-05 09:18:15 file
>>>>> lrwxrwxrwx 1 michael michael 4 2018-09-05 09:18:28 near_symlink
>>>>> -> file
>>>>> lrwxrwxrwx 1 michael michael 23 2018-09-05 09:19:05 far_symlink ->
>>>>> /home/michael/Documents
>>>>>
>>>>> The "destination" dir is empty:
>>>>>
>>>>> $ ls ./dest
>>>>> drwxr-xr-x 31 michael michael 4.0K 2018-09-12 09:46:06 ..
>>>>> drwx------ 2 michael michael 4.0K 2018-09-12 09:50:20 .
>>>>>
>>>>> I want to know which files are candidates to transfer. I don't want
>>>>> symlinks to transfer. So I run it with --list-only :
>>>>>
>>>>> $ rsync -r --no-links --list-only ./src/ ./dest
>>>>> drwx------ 4,096 2018/09/06 09:39:16 .
>>>>> lrwxrwxrwx 23 2018/09/05 09:19:05 far_symlink
>>>>> -rw------- 0 2018/09/05 09:18:15 file
>>>>> lrwxrwxrwx 4 2018/09/05 09:18:28 near_symlink
>>>>>
>>>>> This seems to indicate the symlinks are expected to transfer. But if I
>>>>> actually run the transfer by removing --list-only ...
>>>>>
>>>>> $ rsync -r --no-links ./src/ ./dest
>>>>> skipping non-regular file "far_symlink"
>>>>> skipping non-regular file "near_symlink"
>>>>>
>>>>> It does not transfer the symlinks and this is confirmed by the
>>>>> contents
>>>>> of dest:
>>>>>
>>>>> $ ls ./dest
>>>>> drwxr-xr-x 31 michael michael 4.0K 2018-09-12 09:46:06 ..
>>>>> -rw------- 1 michael michael 0 2018-09-12 09:57:50 file
>>>>> drwx------ 2 michael michael 4.0K 2018-09-12 09:57:50 .
>>>>>
>>>>> So it seems like --list-only isn't being truthful as it surely knows
>>>>> beforehand the symlinks will not be transferred regardless of the
>>>>> condition of dest.
>>>>>
>>>>> What am I missing?
>>>>>
>>>>> Thanks,
>>>>> Michael Hipp
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
--
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,
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: https://sanitarium.net/
PGP public key available on web site.
~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,-*~'`^`'~*-,._.,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/rsync/attachments/20180912/cf4dfb64/signature.sig>
More information about the rsync
mailing list