A opção --list-only
não identifica os arquivos que serão transferidos; ele apenas identifica os arquivos candidatos para serem transferidos. Você pode ver isso aqui
touch aa bb cc; ln -s cc dd
rsync --list-only --no-links -a ?? /tmp
rsync -av ?? /tmp
rsync --list-only --no-links -a ?? /tmp
Saída do último rsync
-rw-r--r-- 0 2018/09/05 16:35:01 aa
-rw-r--r-- 0 2018/09/05 16:35:01 bb
-rw-r--r-- 0 2018/09/05 16:35:01 cc
lrwxrwxrwx 2 2018/09/05 16:35:01 dd -> cc
Considere o último rsync
, em que os arquivos já foram transferidos e permanecem inalterados na origem. Se --list-only
mostrasse arquivos que precisavam ser transferidos, nada seria listado. No entanto, ele ainda mostra o conjunto de arquivos de origem que precisam ser considerados.
Se você quiser usar o contexto do destino para gerenciar o conjunto de arquivos a ser informado, use --dry-run --info=name
rsync --dry-run --info=name --archive --no-links ?? /tmp
Ou, se você quiser uma saída similar àquela produzida por --list-only
(notavelmente omitindo o tipo de entrada do primeiro caractere)
rsync --dry-run --info=name --out-format='%B%16l %t %f' --archive --no-links ?? /tmp
Saída inicial
skipping non-regular file "dd"
rw-r--r-- 0 2018/09/05 16:42:30 aa
rw-r--r-- 0 2018/09/05 16:42:30 bb
rw-r--r-- 0 2018/09/05 16:42:30 cc
Saída subsequente, uma vez que os arquivos foram copiados
skipping non-regular file "dd"