我有以下 bash 脚本,用于在 Kubuntu PC 上创建我的文件系统的 tar.gz。问题是,它还尝试备份 tar.gz 备份文件,即使我将备份存储在 /tmp 中并从备份中省略了 /tmp。我想知道为什么它会在 /tmp 中备份文件,尽管我告诉它不要这样做。
#!/bin/bash
# init
DATE=$(date +20%y%m%d)
sudo tar -cvpzf /tmp/`hostname`_$DATE.tar.gz \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/sys \
--exclude=/mnt \
--exclude=/media \
--exclude=/dev \
--exclude=/tmp \
--exclude=/home/jlacroix/Desktop \
--exclude=/home/jlacroix/Documents \
--exclude=/home/jlacroix/Music \
--exclude=/home/jlacroix/Pictures \
--exclude=/home/jlacroix/Projects \
--exclude=/home/jlacroix/Roms \
--exclude=/home/jlacroix/Videos \
--exclude=/home/jlacroix/.VirtualBox\ VMs \
--exclude=/home/jlacroix/.SpiderOak \
/
scp /tmp/`hostname`_$DATE.tar.gz jlacroix@Pluto:/share/Recovery/Snapshots
sudo rm /tmp/`hostname`_$DATE.tar.gz
答案1
您需要在排除的路径后面添加“*”,其工作原理是算法排除模式,而不是目录。
因此模式 /home/jlacroix/Music !=/home/jlacroix/Music/*
尝试一下,对我有用。
编辑:
不过,这仍然备份了目录名称。因此,您确实需要它看起来像这样:
--exclude=/home/[username]/Music/* --exclude=/home/[username]/Music \
这对于其余项目也同样适用。