Server IP : 51.89.169.208 / Your IP : 216.73.216.126 Web Server : Apache System : Linux ns3209505.ip-198-244-202.eu 4.18.0-553.27.1.el8_10.x86_64 #1 SMP Tue Nov 5 04:50:16 EST 2024 x86_64 User : yellowleaf ( 1019) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/zsh/5.5.1/functions/ |
Upload File : |
# function zftransfer { # Transfer files between two distinct sessions. No remote globbing # is done, since only single pairs can be transferred. emulate -L zsh [[ $curcontext = :zf* ]] || local curcontext=:zftransfer local sess1 sess2 file1 file2 oldsess=${ZFTP_SESSION} if [[ $# -ne 2 ]]; then print "Usage: zftransfer sess1:file1 sess2:file2" 1>&2 return 1 fi if [[ $1 = *:* ]]; then sess1=${1%%:*} file1=${1#*:} fi : ${sess1:=$ZFTP_SESSION} if [[ $2 = *:* ]]; then sess2=${2%%:*} file2=${2#*:} fi : ${sess2:=$ZFTP_SESSION} if [[ -z $file2 || $file2 = */ ]]; then file2="${file2}${file1:t}" fi if [[ $sess1 = $sess2 ]]; then print "zftransfer: must use two distinct sessions." 1>&2 return 1 fi zftp session $sess1 zfautocheck || return 1 # It's more useful to show the progress for the second part # of the pipeline, but unfortunately that can't necessarily get # the size from the pipe --- and if it does, it's probably wrong. # To avoid that, try to get the size and set it for the progress to # see. local style zstyle -s ':zftp:zftransfer' progress style if [[ -n $style && $style != none ]]; then local ZFTP_TSIZE array () { zftp remote $file1 >|$1 2>/dev/null array=($(<$1)) } =(<<<'temporary file') [[ $#array -eq 2 ]] && ZFTP_TSIZE=$array[1] fi # We do the RHS of the pipeline in a subshell, too, so that # the LHS can get SIGPIPE when it exits. { zstyle '*' progress none zftp get $file1 } | ( zftp session $sess2 zfautocheck && zftp put $file2 ) local stat=$? zftp session $oldsess return $stat # }