• Marc Cornellà's avatar
    Fix cp plugin completion and refactor (#5427) · 81981ef2
    Marc Cornellà authored
    * cp plugin: change cpv to function so that completion works
    
    * cp plugin: show numbers in units of 1024 (K,M,G,T)
    
    Use `-h` level (3): output numbers in units of 1024.
    See the manpage of rsync for more information.
    
    * cp plugin: add a README file
    
    * cp plugin: recurse directories
    
    * cp plugin: remove `--` to separate files from options
    
    This has some undesired effects, like having `cpv --help` be a file
    not found error.
    
    Use `--` yourself if you need it (which you generally don't):
    
    ```zsh
    cpv -- -some-file-with-hyphens.txt /tmp
    ```
    
    Added this same info to the README.
    81981ef2

cp plugin

This plugin defines a cpv function that uses rsync so that you get the features and security of this command.

To enable, add cp to your plugins array in your zshrc file:

plugins=(... cp)

Description

The enabled options for rsync are:

  • -p: preserves permissions.

  • -o: preserves owner.

  • -g: preserves group.

  • -b: make a backup of the original file instead of overwriting it, if it exists.

  • -r: recurse directories.

  • -hhh: outputs numbers in human-readable format, in units of 1024 (K, M, G, T).

  • --backup-dir=/tmp/rsync: move backup copies to "/tmp/rsync".

  • -e /dev/null: only work on local files (disable remote shells).

  • --progress: display progress.