发布网友 发布时间:2022-04-25 22:24
共1个回答
热心网友 时间:2022-05-04 19:37
给你个脚本吧,以前学的时候写着玩的 #!/bin/bash #备份指定目录下的所有文件, 如果不指定目录备份当前目录下的所有文件 #help function help() { cat << HELP ================== dirbackup.sh help =================== 备份指定目录下的普通文件, 如果布指定目录将备份当前目录下的文件 USAGE: dirbackup.sh 'arg1' -h 显示帮助 -g 启用gzip 压缩 -n name 指定备份后的文件名(不含后缀) -d dir 指定需要备份的目录 EXAMPLE: dirbackup.sh -g -n namefile -d /DIR HELP } ####################主程序开始#################### DIR_BACKUP=$PWD FILENAME_BACKUP=backup_$(date +%Y-%m-%d) GZIP=1 #echo $DIR_BACKUP #echo $FILENAME_BACKUP #参数辨识 while [ -n "$1" ]; do case "$1" in -h)help; exit 0;; -g)GZIP=0; shift;; -n) shift [ -z "$1" ] && { echo "参数错误,请填写文件名"; help; exit 1; } FILENAME_BACKUP=$1_$(date +%Y-%m-%d) shift ;; -d) shift [ -d "$1" ] || { echo "参数错误,请从新填写目录"; help; exit 1; } DIR_BACKUP="$1" shift ;; *)echo " 参数填写错误"; help; exit 1;; esac done #打包和压缩 #tar cvf - `find $DIR_BACKUP -type f -print` > $FILENAME_BACKUP.tar pwd=$PWD cd $DIR_BACKUP find . -type f -print | xargs tar cvf "$FILENAME_BACKUP.tar" [ $GZIP -eq "0" ] && gzip $FILENAME_BACKUP.tar if [ x$PWD = x$pwd ]; then : else mv $FILENAME_BACKUP.tar* $pwd fi cd $pwd echo echo "Dir $DIR_BACKUP backed up in \"$FILENAME_BACKUP.tar(.gz)\"." exit 0