This file is indexed.

/etc/bash_completion.d/rsync is in bash-completion 1:1.3-1ubuntu8.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# bash completion for rsync

have rsync &&
_rsync()
{
    # TODO: _split_longopt

    COMPREPLY=()
    local cur prev
    _get_comp_words_by_ref -n : cur prev

    _expand || return 0

    case $prev in
        --config|--password-file|--include-from|--exclude-from)
            _filedir
            return 0
            ;;
        -T|--temp-dir|--compare-dest)
            _filedir -d
            return 0
            ;;
        -e|--rsh)
            COMPREPLY=( $( compgen -W 'rsh ssh' -- "$cur" ) )
            return 0
            ;;
        --compress-level)
            COMPREPLY=( $( compgen -W '1 2 3 4 5 6 7 8 9' -- "$cur" ) )
            return 0
            ;;
    esac

    case $cur in
        -*)
            COMPREPLY=( $( compgen -W '--verbose --quiet --no-motd --checksum \
                --archive --recursive --relative --no-implied-dirs \
                --backup --backup-dir --suffix= --update --inplace --append \
                --append-verify --dirs --old-dirs --links --copy-links \
                --copy-unsafe-links --safe-links --copy-dirlinks \
                --keep-dirlinks --hard-links --perms --executability --chmod= \
                --acls --xattrs --owner --group --devices --copy-devices \
                --specials --times --omit-dir-times --super --fake-super \
                --sparse --dry-run --whole-file --no-whole-file \
                --one-file-system --block-size= --rsh= --rsync-path= \
                --existing --ignore-existing --remove-source-files --delete \
                --delete-before --delete-during --delete-delay --delete-after \
                --delete-excluded --ignore-errors --force --max-delete= \
                --max-size= --min-size= --partial --partial-dir= \
                --delay-updates --prune-empty-dirs --numeric-ids --timeout= \
                --contimeout= --ignore-times --size-only --modify-window= \
                --temp-dir= --fuzzy --compare-dest= --copy-dest= --link-dest= \
                --compress --compress-level= --skip-compress= --cvs-exclude \
                --filter= --exclude= --exclude-from= --include= \
                --include-from= --files-from= --from0 --protect-args \
                --address= --port= --sockopts= --blocking-io --no-blocking-io \
                --stats --8-bit-output --human-readable --progress \
                --itemize-changes --out-format= --log-file= \
                --log-file-format= --password-file= --list-only --bwlimit= \
                --write-batch= --only-write-batch= --read-batch= --protocol= \
                --iconv= --ipv4 --ipv6 --version --help --daemon --config= \
                --no-detach' -- "$cur" ) )
            ;;
        *:*)
            if type _scp_remote_files &>/dev/null; then
                # find which remote shell is used
                local i shell=ssh
                for (( i=1; i < COMP_CWORD; i++ )); do
                    if [[ "${COMP_WORDS[i]}" == -@(e|-rsh) ]]; then
                        shell=${COMP_WORDS[i+1]}
                        break
                    fi
                done
                [ "$shell" = ssh ] && _scp_remote_files
            fi
            ;;
        *)
            _known_hosts_real -c -a "$cur"
            type _scp_local_files &>/dev/null && _scp_local_files || _filedir
            ;;
    esac

    return 0
} &&
complete -F _rsync -o nospace rsync

# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh