Tail命令參數中有一個參數-n, ——lines=N,可以直接輸出一個文件中的最後N行。
利用此參數,結合tar命令可以在Linux下創建類似Windows下winrar的自解壓了。
# !/bin/sh
[ $# != "1" ] && echo "Usage: $0 tarfile" && exit 0
DESTFILE="$1.sh"
echo "# !/bin/sh" > $DESTFILE
echo "LINES=\`wc -l \$0 | awk '{ print \$1 }'\`" >> $DESTFILE # 計算目標文件的行數
echo "LINES=\`expr \$LINES - 4\`" >> $DESTFILE # 計算需要輸出的行,為總行數-4(4行執行腳本)
echo "tail -n \$LINES \$0 | tar -xv " >> $DESTFILE # 輸出並釋放(可以結合-z/-j釋放壓縮文件)
echo "exit 0" >> $DESTFILE
chmod +x $DESTFILE
cat $1 >> $DESTFILE #添加tar文件到文件尾