使用 tar 排除包含目录的子目录

使用 tar 排除包含目录的子目录

我正在尝试使用tarxz制作压缩备份。我目前拥有的命令是:

tar --exclude="/home/derpy/Desktop/WineGames" \
    --exclude="/home/derpy/.steam" \
    --exclude="/home/derpy/Desktop/wesnoth-dev/.git" \
    --exclude="/home/derpy/Desktop/wesnoth-dev/build" \
    --exclude="/home/derpy/Desktop/wesnoth-dev/data" \
    --exclude="." \
    --create \
    --to-stdout \
    --preserve-permissions \
    --ignore-failed-read \
    --directory="/" \
    etc home boot root usr/share | \
xz \
    --lzma2=preset=9e,dict=1536MiB,mf=bt4,mode=normal,nice=273,depth=1000 \
    --to-stdout > \
    "/media/PentaSet/Backups/"(date +"%m-%d-%Y@%I:%M:%S%p")".tar.xz"

但是,由于某种原因,当我运行命令时,该.steam目录仍然包含在输出存档中。

答案1

您正在执行完整路径名,--exclude但是相对的要压缩的目录中的路径名

例如

--exclude="/home/derpy/.steam"
home

因为您指定的home文件名tarhome/derpy/.steam并且不是 /home/derpy/.steam

所有排除都应使用与 tar 文件内的名称相匹配的文件名;例如home/derpy/.steam

相关内容