Get list of transferred files from rsync?
According to the man page:
--out-formatoption will mention each file, dir, etc. that gets updated in a significant way (a transferred file, a recreated symlink/device, or a directory).
If you only need the actual filenames (
--out-format="%n") your dry run command might look like:
rsync -rzan --out-format="%n" --ignore-times --checksum /tmp/app_export/ [email protected]:/var/www/html/app/
When rsync is called with
-v, it internally uses this option with a default format of
"%n%L", which tells you just the name of the file and, if item the is a link, where it points.
But this also includes a short summary at the beginning and the end of the sync process.
To get rid of that summary use the
--out-format option directly.
-i also internally uses
--out-format, but with a format of
If there's an rsync option to do exactly what you're asking, I didn't find it in the manpage either. :-)
That said, I don't see the problem with grepping the output of
rsync -i to parse out exactly what you need. That feels nice and Unixy to me.
One nit-picky quibble with your rsync command: the
-r is redundant, as it is implied by
Beginning with rsync v3.1.0, released in 2013, there is the
--info flag which allows fine-grained control over the output.
--info=FLAGS This option lets you have fine-grained control over the information output you want to see. An individual flag name may be followed by a level number, with 0 meaning to silence that output, 1 being the default output level, and higher numbers increasing the output of that flag (for those that support higher levels). Use --info=help to see all the available flag names, what they output, and what flag names are added for each increase in the verbose level. Some examples: rsync -a --info=progress2 src/ dest/ rsync -avv --info=stats2,misc1,flist0 src/ dest/ Note that --info=name’s output is affected by the --out-format and --itemize-changes (-i) options. See those options for more information on what is output and when. This option was added to 3.1.0, so an older rsync on the server side might reject your attempts at fine-grained control (if one or more flags needed to be send to the server and the server was too old to understand them). See also the "max verbosity" caveat above when dealing with a daemon.
--info flags are:
Use OPT or OPT1 for level 1 output, OPT2 for level 2, etc.; OPT0 silences. BACKUP Mention files backed up COPY Mention files copied locally on the receiving side DEL Mention deletions on the receiving side FLIST Mention file-list receiving/sending (levels 1-2) MISC Mention miscellaneous information (levels 1-2) MOUNT Mention mounts that were found or skipped NAME Mention 1) updated file/dir names, 2) unchanged names PROGRESS Mention 1) per-file progress or 2) total transfer progress REMOVE Mention files removed on the sending side SKIP Mention files that are skipped due to options used STATS Mention statistics at end of run (levels 1-3) SYMSAFE Mention symlinks that are unsafe ALL Set all --info options (e.g. all4) NONE Silence all --info options (same as all0) HELP Output this help message Options added for each increase in verbose level: 1) COPY,DEL,FLIST,MISC,NAME,STATS,SYMSAFE 2) BACKUP,MISC2,MOUNT,NAME2,REMOVE,SKIP