1.删除当前目录下包含特俗字符和空格的文件
#! /bin/sh
for filename in *
do
badname=`echo "$filename" | sed -n '/[+{;"/=?~()<>&*|$]/p'`
rm $badname 2 > /dev/null
done
find . -name "* *" -exec rm -f {} /;
exit 0
2.根据文件的inode号来删除文件
#! /bin/sh
ARGCOUNT=1
E_WRONGARGS=70
E_FILE_NOT_EXIST=71
E_CHANGED_MIND=72
if [ $# -ne "$ARGCOUNT" ]
then
echo "Usage: `basename $0` filename"
exit $E_WRONGARGS
fi
if [ ! -e "$1" ]
then
echo "File /"$1/" does not exist."
exit $E_FILE_NOT_EXIST
fi
inum=`ls -i | grep "$1" | awk '{print $1}'`
echo $inum
echo;echo -n "Are you absolutely sure you want to delete /"$1/" y/n? "
read answer
case "$answer" in
[nN]) echo "Changed your mind,huh?"
exit $E_CHANGED_MIND
;;
*) echo "Deleting file /"$1/".";;
esac
find . -inum $inum -exec rm {} /;
echo "File /"$1/" deleted."
exit 0
3.使用xargs来监控系统log
#! /bin/sh
LINES=5
( date;uname -a) >> logfile
echo "-------------------------------------------------------" >> logfile
tail -$LINES /var/log/messages | xargs | fmt -s >> logfile -----fmt排版文本文件
echo >> logfile
echo >> logfile
exit 0
4.把当前文件夹下文件拷贝到另一个文件夹中
#! /bin/sh
E_NOARGS=65
if [ -z "$1" ]
then
echo "Uage: `basename $0` directory-to-copy-to"
exit $E_NOARGS
fi
ls . | xargs -i -t cp ./{} $1
exit 0
4.把当前文件夹下文件拷贝到另一个文件下
#! /bin/sh
E_NOARGS=65
if [ -z "$1" ]
then
echo "Uage: `basename $0` directory-to-copy-to"
exit $E_NOARGS
fi
ls . | xargs -i -t cp ./ {} $1
exit 0
5.通过名字,kill进程
#! /bin/sh
E_BADARGS=66
if test -z "$1"
then
echo "Uage:`basename $0` Process(es)_to_kill"
exit $E_BADARGS
fi
PROCESS_NAME=$1
ps ax | grep "$PROCESS_NAME" | awk '{print $1}' | xargs -i kill {} 2 & >/dev/null
exit $?