Fix cp plugin completion and refactor (#5427)
* 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.master
parent
d57f36dab8
commit
81981ef248
2 changed files with 36 additions and 14 deletions
@ -0,0 +1,32 @@ |
||||
# 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: |
||||
|
||||
```zsh |
||||
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. |
||||
@ -1,14 +1,4 @@ |
||||
#Show progress while file is copying |
||||
|
||||
# Rsync options are: |
||||
# -p - preserve permissions |
||||
# -o - preserve owner |
||||
# -g - preserve group |
||||
# -h - output in human-readable format |
||||
# --progress - display progress |
||||
# -b - instead of just overwriting an existing file, save the original |
||||
# --backup-dir=/tmp/rsync - move backup copies to "/tmp/rsync" |
||||
# -e /dev/null - only work on local files |
||||
# -- - everything after this is an argument, even if it looks like an option |
||||
|
||||
alias cpv="rsync -poghb --backup-dir=/tmp/rsync -e /dev/null --progress --" |
||||
cpv() { |
||||
rsync -pogbr -hhh --backup-dir=/tmp/rsync -e /dev/null --progress "$@" |
||||
} |
||||
compdef _files cpv |
||||
|
||||
Loading…
Reference in new issue