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 |
cpv() { |
||||||
|
rsync -pogbr -hhh --backup-dir=/tmp/rsync -e /dev/null --progress "$@" |
||||||
# Rsync options are: |
} |
||||||
# -p - preserve permissions |
compdef _files cpv |
||||||
# -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 --" |
|
||||||
|
|||||||
Loading…
Reference in new issue