![使用 tar 排除包含目录的子目录](https://linux22.com/image/94170/%E4%BD%BF%E7%94%A8%20tar%20%E6%8E%92%E9%99%A4%E5%8C%85%E5%90%AB%E7%9B%AE%E5%BD%95%E7%9A%84%E5%AD%90%E7%9B%AE%E5%BD%95.png)
我正在尝试使用tar
并xz
制作压缩备份。我目前拥有的命令是:
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
文件名tar
是home/derpy/.steam
并且不是 /home/derpy/.steam
。
所有排除都应使用与 tar 文件内的名称相匹配的文件名;例如home/derpy/.steam