压缩一个文件夹为.tar.gz
tar cvf - filenames | gzip > file.tar.gz
-
的含义是重定向到stdin或者stdout
备份一天内的文件
#!/bin/bash
BACKUPFILE=back-$(date +%Y-%m-%d)
# 备份文件中插入时间
archive=${1:-$BACKUPFILE}
# 命令行中没有给定文件名称,则默认使用backup-YYYY-MM-DD.tar.gz
tar cvf - `find . -mtime -1 -type f -print` > $archive.tar
# 文件太多或者文件名称包括空格的时候出错使用下面的方式
# find . -mtime -1 -type f -print0 |xargs -0 tar cvf "$archive.tar"
gzip $archive.tar
echo "Directory $PWD backuped in archive file \"$archive.tar.gz\"."