📄 urar.in
字号:
#! /bin/sh## Written by andrey joukov# (C) 1996 2:5020/337.13@fidonet.org# Updated by christian.gennerat@alcatel.fr 1999# Andrew V. Samoilov <sav@bcs.zp.ua> 2000# beta version 2.0## rar and unrar can be found on http://www.rarlabs.com/RAR=rarUNRAR=$RAR# Prefer unrar (freeware). Try to find unrar in $PATH.save_IFS="$IFS"; IFS=:for dir in $PATH; do IFS="$save_IFS" test -z "$dir" && dir=. if test -x $dir/unrar -a -f $dir/unrar; then UNRAR=$dir/unrar break fidonemcrarfs_list (){ $UNRAR v -c- "$1" | @AWK@ -v uid=${UID-0} 'BEGIN { flag=0; date="JanFebMarAprMayJunJulAugSepOctNovDec" }/^-------/ { flag++; if (flag > 1) exit 0; next }{if (flag == 0) nextif ( !/ [0-9][0-9]:[0-9][0-9] /) str = $0 # there is no time spec in this lineelse { if (str ~ /^\^/) str=substr(str, 2) split($4, a, "-") if (a[3] < 50) a[3] = 2000 + a[3] else a[3] = 1900 + a[3] if (index($6, "D") != 0) $6="drwxr-xr-x" else if (index($6, ".") != 0) $6="-rw-r--r--" printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s\n", $6, uid, 0, $1, substr(date, (a[2]-1)*3+1, 3), a[1], a[3], $5, str}}'}mcrarfs_copyin (){# copyin by christian.gennerat@alcatel.fr# preserve pwd. It is clean, but is it necessary? pwd=`pwd`# Create a directory and copy in it the tmp file with the good name mkdir "$3.dir" cd "$3.dir" di="${2%/*}"# if file is to be written upper in the archive tree, make fake dir if test "$di" != "${2##*/}" ; then mkdir -p "$di" fi cp -fp "$3" "$3.dir/$2" $RAR a "$1" "$2" >/dev/null cd $pwd rm -rf "$3.dir"}mcrarfs_copyout (){ $UNRAR p -c- -inul "$1" "$2" > "$3"}mcrarfs_mkdir (){# preserve pwd. It is clean, but is it necessary? pwd=`pwd`# Create a directory and create in it a tmp directory with the good name dir=tmpdir.${RANDOM} mkdir $dir cd $dir mkdir -p "$2" # rar cannot create an empty directory touch "$2"/.rarfs $RAR a -r "$1" "$2" >/dev/null $RAR d "$1" "$2/.rarfs" >/dev/null cd $pwd rm -rf $dir}mcrarfs_rm (){ $RAR d "$1" "$2" >/dev/null}umask 077cmd="$1"shiftcase "$cmd" in list) mcrarfs_list "$@" | sort +9 ;; # rar lists directories # after files, so sort names # to prevent duplication rm) mcrarfs_rm "$@" ;; rmdir) mcrarfs_rm "$@" ;; mkdir) mcrarfs_mkdir "$@" ;; copyin) mcrarfs_copyin "$@" ;; copyout) mcrarfs_copyout "$@" ;; *) exit 1 ;;esacexit 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -