#!/bin/bash
# rpm-check.sh
# 这个脚本的目的是为了描述,列表,和确定是否可以安装一个 rpm 包.
# 在一个文件中保存输出.
#
# 这个脚本使用一个代码块来展示
SUCCESS=0
E_NOARGS=65
if [ -z "$1" ]
then
echo "Usage: `basename $0` rpm-file"
exit $E_NOARGS
fi
{
echo
echo "Archive Description:"
rpm -qpi $1 # 查询说明
echo
echo "Archive Listing:"
rpm -qpl $1 # 查询列表
echo
rpm -i --test $1 # 查询 rpm 包是否可以被安装
if [ "$?" -eq $SUCCESS ]
then
echo "$1 can be installed."
else
echo "$1 cannot be installed."
fi
echo
}> "$1.test" # 把代码块中的所有输出都重定向到文件中
echo "Results of rpm test in file $1.test"
# 查看 rpm 的 man 页来查看 rpm 的选项
exit 0
备份最后一天所有修改的文件
#!/bin/bash
# 在一个"tarball"中(经过 tar 和 gzip 处理过的文件)
#+ 备份最后 24 小时当前目录下 d 所有修改的文件.
BACKUPFILE=backup-$(date +%m-%d-%Y)
# 在备份文件中嵌入时间.
# Thanks, Joshua Tschida, for the idea.
archive=${1:-$BACKUPFILE}
# 如果在命令行中没有指定备份文件的文件名,
#+ 那么将默认使用"backup-MM-DD-YYYY.tar.gz".
tar cvf - `find . -mtime -1 -type f -print` > $archive.tar
gzip $archive.tar
echo "Directory $PWD backed up in archive file \"$archive.tar.gz\"."
# Stephane Chazelas 指出上边代码,
#+ 如果在发现太多的文件的时候,或者是如果文件
#+ 名包括空格的时候,将执行失败.
# Stephane Chazelas 建议使用下边的两种代码之一
# -------------------------------------------------------------------
find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
使用 gnu 版本的 find.
find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' \;
对于其他风格的 UNIX 便于移植,但是比较慢.
# -------------------------------------------------------------------
exit 0