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:
parent
d57f36dab8
commit
81981ef248
2 changed files with 36 additions and 14 deletions
32
plugins/cp/README.md
Normal file
32
plugins/cp/README.md
Normal 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.
|
|
@ -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 a new issue