Server IP : 85.214.239.14 / Your IP : 13.58.232.94 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /bin/ |
Upload File : |
#!/bin/bash # Copyright (C) George Makrydakis 2009-2011,2013 # Copyright (C) Con Kolivas 2011-2012,2016,2018,2021 # A bash wrapper for Con Kolivas' excellent lrzip utility. For the time # being, lrzip does not like pipes, so we had to do this. It is kind of # self - documenting, spawned out of a test tube bash shell script. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. function lrztar_local() { local hv="\ lrztar GNU/bash wrapper script for lrzip and tar input/output over directories. Copyright (C) George Makrydakis 2009-2011,2013 Copyright (C) Con Kolivas 2011-2012,2016,2018,2021 Usage : lrztar [lrzip options] <directory> Result: a lrzip tarball is produced. Extras: when an lrzip tarball is used with -d, -O, it gets extracted: -h: will display this message. -d: <path1> will decompress a <path1> lrzip tarball to current directory. -O: <path2> will decompress a -d specified lrzip tarball to <path2> path. -f: will force overwrites. Notice: - The input argument is always last, all options and their arguments precede. - The -O flag is an option flag, goes before: (-O <somedir> <input arg>). - You can use the remaining options of lrzip as they were. - lrzuntar is equivalent to lrztar [options] -d <filename>. - This script exists because of how lrzip behaves. - Beware the -f flag, it stands for what it says... " [[ $1 == "" ]] && { printf "lrztar: no arguments given\n"; return 1; } local p=("${@:1:$(($#-1))}") s="${!#}" vopt=("lrz") \ v_w=0 v_S=0 v_D=0 v_p=0 v_q=0 v_L=0 \ v_n=0 v_l=0 v_b=0 v_g=0 v_z=0 v_U=0 \ v_T=0 v_N=0 v_v=0 v_f=0 v_d=0 v_h=0 \ v_H=0 v_c=0 v_k=0 v_o=0 v_O=0 v_m=0 x= i="$(pwd)" tar --version &> /dev/null \ || { printf "lrztar: no tar in your path\n"; return 1; } lrzip --version &> /dev/null \ || { printf "lrztar: no lrzip in your path\n"; return 1; } lrzcat --version &> /dev/null \ || { printf "lrztar: no lrzcat in your path\n"; return 1; } while getopts w:O:S:DqL:nlbgzUm:TN:p:vfo:d:tVhHck x; do [[ $x == [tV] ]] && { printf "lrztar: invalid option for lrztar: %s\n" "$x"; return 1; } ((v_$x=${#vopt[@]})) vopt[${#vopt[@]}]="$OPTARG" done [[ $(basename "$0") == lrzuntar ]] \ && { ((v_d=${#vopt[@]})); vopt[${#vopt[@]}]="$s"; } { ! (($#)) || ((v_h)); } && { printf "%s\n" "$hv" return } ((v_d)) && { [[ -e ${vopt[v_d]} ]] || { printf "lrztar: file does not exist: %s\n" \ "${vopt[v_d]}" return 1 } i+="/${vopt[v_d]##*/}" i="${i%.tar.*}" if ((v_O)); then for x in ${!p[@]};do [[ ${p[x]} == "-O" ]] && { p[x]= p[$((x+1))]= break; } done i="${vopt[v_O]%/}" x="${s##*/}" if [[ -d "$i/${x%.tar.*}" ]] && ! ((v_f)); then printf "lrztar: %s exists, use -f.\n" \ "$i/${x%.tar.*}" return 1 fi if ! [[ -d $i ]]; then printf "lrztar: %s output path does not exist.\n" \ "$i" return 1 fi else i="./" fi [ ! -z "$s" ] && { lrzcat ${p[@]// /\\ } "$s" | tar x -C "$i" x=$? } || { lrzcat ${p[@]// /\\ } | tar x -C "$i" x=$? } } || { if ((v_o)); then ! ((v_f)) && [[ -e ${vopt[$v_o]} ]] && { printf "lrztar: %s exists, use -f to overwrite.\n" \ "${vopt[$v_o]}" return 1 } else if ((v_O)); then if ! [[ -d ${vopt[v_O]} ]]; then printf "lrztar: %s output path does not exist.\n" \ "${vopt[v_O]}" return 1 fi for x in ${!p[@]};do [[ ${p[x]} == "-O" ]] && { p[x]= i="${p[$((x+1))]%/}" p[$((x+1))]= s="${!#}" break; } done fi s="${s%/}" p+=(-o "$i/${s##*/}.tar.${vopt[v_S]}"); fi if ! ((v_o)); then ! ((v_f)) && [[ -e $i/${s##*/}.tar.${vopt[v_S]} ]] && { printf "lrztar: %s exists, use -f to overwrite\n" \ "$i/${s##*/}.tar.${vopt[v_S]}" return 1 } fi tar c "$s" | lrzip "${p[@]}" x=$? } return $x } lrztar_local "${@}"