Windows tar 命令:排除当前文件夹中的文件夹但不排除子文件夹

Windows tar 命令:排除当前文件夹中的文件夹但不排除子文件夹

我正在尝试使用 Windows 中的 tar 命令存档一些文件夹,并且我想排除当前文件夹中的目录,但不排除子文件夹中的目录。

下面的示例使用了此答案中描述的技术,但它似乎在 Windows 上不起作用:https://stackoverflow.com/questions/984204/shell-command-to-tar-directory-clusion-certain-files-folders

tar -c -f ../test.tar .

tar -t -f ../test.tar

./
./one/
./two/
./two/two.txt
./one/two/
./one/two/two.txt

tar --exclude "./two" -c -f ../test.tar .

tar -t -f ../test.tar

./
./one/

答案1

Windowstar命令是 bsdtar库存档,而不是 Linux 上的 GNU tar。

libarchive 使用的模式语法没有记录(文档声称它类似于 tcsh 的 glob 语法,但似乎并非如此),但是显然它需要^前缀将模式“锚定”到路径的开头:

bsdtar --exclude="^two"

(来源:https://stackoverflow.com/questions/33076083/how-to-make-tar-exclude-behave-consistently-across-nix-environments

相关内容