⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newspress

📁 zlib压缩原码
💻
字号:
#!/bin/bash# USAGE: newspress [-l <#links>] <newsgroup> [<newsgroup> ...]## Option "-l" forces to search and compress all arcticles with a given number#             of links (thread). If this option is not used, all articles #             are compressed regardless of the number of links. #             This is realy SLOWLY since corresponding filenames in several #             newsgroups have to be searched first!## Option "-s" gives the minimal size of a news article to be compressed.#             Default is 1k## Option "-t" test only the existance of files and do not compress## ToDo:       trap handling to avoid interupting the script, while creating#             the sequence of links and the compressed file #             (function compresslinks).## Version.    0.1 (16. March 1997)## Please      send bugfixes / enhancements to the author# Author:     reiner@schildi.xnc.com Germanyexport LD_ZLIB_DISABLE=1NEWSSPOOL=/var/spool/news	# ADJUST TO YOUR NEEDS !!!LOGDEV="/dev/null"size="-size +1k";testonly=0;function usage(){	echo "USAGE:" $0 '[-l <#links>] [-s <size>] [-v] <newsgroup> [<newsgroup> ...]'}function findlinks (){	while read fname; do		# numlinks=`ls -l $fname | awk ' {print $2}'`		ngroup=`dirname $fname`		groups=`awk '/Newsgroups: / { print $2}' $fname | tr ',.' ' /'`		ifile=`ls -i $fname | awk ' {print $1}'`		echo "SEARCHFOR INODE $ifile IN $groups" > $LOGDEV;		for group in $groups; do			if [ -d $NEWSSPOOL/$group ]; then				if [ "$NEWSSPOOL/$group" = "$ngroup" ]; then					echo -n "$fname ";					echo -n "$fname " > $LOGDEV;				else					fname="`find $NEWSSPOOL/$group -maxdepth 1 -inum $ifile`";					if [ $? = 0 ]; then						echo -n "$fname ";						echo -n "$fname " > $LOGDEV;					else						echo > $LOGDEV;						echo "$ifile NOT FOUND in $group" > $LOGDEV;					fi				fi			fi		done		echo ;		echo > $LOGDEV;	done}function compresslinks (){	while read crosspost; do		tocompress=`echo $crosspost | cut -d ' ' -f 1`		compressed=$tocompress.gz		echo "gzip -9 -c $tocompress > $compressed" > $LOGDEV;		gzip -9 -c $tocompress > $compressed		chmod +rw $compressed		chown news.news $compressed		if [ $testonly != 0 ]; then			echo "TESTING $crosspost" > $LOGDEV			return 0;		else		for tolink in $crosspost; do			if [ ! -r $tolink.gz ]; then				echo "ln $compressed $tolink.gz; " > $LOGDEV;				ln $compressed $tolink.gz;			fi			if [ -r $tolink -a -r $tolink.gz ]; then				echo "rm -f $tolink" > $LOGDEV;				rm -f $tolink;			else				echo "Problem with $tolink" > $LOGDEV;			fi		done		fi	done}# *******************************  M A I N  ********************************findopt="";links="";while getopts "vtl:s:" opt; do 	case $opt in	   l)	links="-links $OPTARG" ;;	   s)	size="-size $OPTARG" ;;	   t)	testonly=1;			LOGDEV="`tty`" ;;	   v)	LOGDEV="`tty`" ;;	   ?)   usage; exit ;;	esacdoneif [ "$OPTIND" -gt 1 ] ; then shift $[$OPTIND - 1]; fiif [ $# = 0 ]; then usage; exit; fifindopt="$links $size";for newsdir in $*; do	newsdir=`echo $newsdir | tr '.' '/'`	# accept syntax newsgrp.newsgrp	find $NEWSSPOOL/$newsdir -type f $findopt \! -name "*.gz" | findlinks | compresslinksdoneecho > $LOGDEV;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -