1
0
Fork 0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-11-22 05:40:08 +00:00

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.
This commit is contained in:
Marc Cornellà 2016-10-04 01:03:16 +02:00 committed by GitHub
parent d57f36dab8
commit 81981ef248
2 changed files with 36 additions and 14 deletions

32
plugins/cp/README.md Normal file
View file

@ -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.

View file

@ -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 --"