Linux按每个文件夹备份一个

Linux按每个文件夹备份一个

我有一个文件夹/home/software,其中有一些子文件夹

/home/software/game
/home/software/photo
/home/software/ebook
...

我想创建 tar 备份,包括每个子文件夹的日期,这样我最终会得到如下文件:

game-20151013.tar.gz
photo-20151013.tar.gz
ebook-20151013.tar.gz
...

删除超过 10 天的备份的最佳方法是什么?

答案1

这是一个可以满足您要求的脚本:

ls /home/software/ | while read d
 do
  tar czf "/home/software/$d-$(date +%y%m%d).tar.gz" "/home/software/$d"
 done
find /home/software -type f -name '*.tar.gz' -mtime +10 -exec rm {} \;

或者

cd /home/software/
ls | while read d
 do
  tar czf "$d-$(date +%y%m%d).tar.gz" "$d"
 done
find . -type f -name '*.tar.gz' -mtime +10 -exec rm {} \;

相关内容