Server IP : 103.119.228.120 / Your IP : 3.147.48.105 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/zsh/5.0.2/functions/ |
Upload File : |
# function zfuget { # Get a list of files from the server with update. # In other words, only retrieve files which are newer than local # ones. This depends on the clocks being adjusted correctly # (i.e. if one is fifteen minutes out, for the next fifteen minutes # updates may not be correctly calculated). However, difficult # cases --- where the files are the same size, but the remote is newer, # or have different sizes, but the local is newer -- are prompted for. # # Files are globbed on the remote host --- assuming, of course, they # haven't already been globbed local, so use 'noglob' e.g. as # `alias zfuget="noglob zfuget"'. # # Options: # -G Glob: turn off globbing # -v verbose: print more about the files listed. # -s silent: don't ask, just guess. The guesses are: # - if the files have different sizes but remote is older ) grab # - if they have the same size but remote is newer ) # which is safe if the remote files are always the right ones. # -t time: update the local file times to the same time as the remote. # Currently this only works if you have the `perl' command, # and that perl is version 5 with the standard library. # See the function zfrtime for more gory details. emulate -L zsh [[ $curcontext = :zf* ]] || local curcontext=:zfuget local loc rem locstats remstats doit tmpfile=${TMPPREFIX}zfuget$$ local rstat remlist opt opt_v opt_s opt_G opt_t integer stat do_close zfuget_print_time() { local tim=$1 print -n "$tim[1,4]/$tim[5,6]/$tim[7,8] $tim[9,10]:$tim[11,12].$tim[13,14]" print -n GMT } zfuget_print () { print -n "\nremote $rem (" zfuget_print_time $remstats[2] print -n ", $remstats[1] bytes)\nlocal $loc (" zfuget_print_time $locstats[2] print ", $locstats[1] bytes)" } while getopts :vsGt opt; do [[ $opt = "?" ]] && print "zfuget: bad option: -$OPTARG" >&2 && return 1 eval "opt_$opt=1" done (( OPTIND > 1 )) && shift $(( OPTIND - 1 )) zfautocheck || return 1 for remlist in $*; do # zfcd directory hack to put the front back to ~ if [[ $remlist == $HOME || $remlist == $HOME/* ]]; then remlist="~${remlist#$HOME}" fi if [[ $opt_n != 1 ]]; then zfrglob remlist fi if (( $#remlist )); then for rem in $remlist; do loc=${rem:t} doit=y remstats=() if [[ -f $loc ]]; then zftp local $loc >$tmpfile locstats=($(<$tmpfile)) zftp remote $rem >$tmpfile rstat=$? remstats=($(<$tmpfile)) rm -f $tmpfile if [[ $rstat = 2 ]]; then print "Server does not implement full command set required." 1>&2 return 1 elif [[ $rstat = 1 ]]; then print "File not found on server: $rem" 1>&2 stat=1 continue fi [[ $opt_v = 1 ]] && zfuget_print if (( $locstats[1] != $remstats[1] )); then # Files have different sizes if [[ $locstats[2] > $remstats[2] && $opt_s != 1 ]]; then [[ $opt_v != 1 ]] && zfuget_print print "Local file $loc more recent than remote," 1>&2 print -n "but sizes are different. Transfer anyway [y/n]? " 1>&2 read -q doit fi else # Files have same size if [[ $locstats[2] < $remstats[2] ]]; then if [[ $opt_s != 1 ]]; then [[ $opt_v != 1 ]] && zfuget_print print "Local file $loc has same size as remote," 1>&2 print -n "but local file is older. Transfer anyway [y/n]? " 1>&2 read -q doit fi else # presumably same file, so don't get it. [[ $opt_v = 1 ]] && print Not transferring doit=n fi fi else [[ $opt_v = 1 ]] && print New file $loc fi if [[ $doit = y ]]; then if zftp get $rem >$loc; then if [[ $opt_t = 1 ]]; then # if $remstats is set, it's second element is the remote time zfrtime $loc $rem $remstats[2] fi else stat=$? fi fi done fi done (( do_close )) && zfclose return $stat # }