这可能是一个bug。
另外,"文件 “这个词在这种情况下是有歧义的。但是因为这是一个命令行开关,我认为它也应该是指目录,因为在unix/lnux中,所有的东西都是一个文件,也是一个目录。另一种解释当然也是有效的,但在这种情况下保留目录是没有意义的。我认为这是意料之外和令人困惑的行为。)
但我发现在某些发行版的gnu tar中,gnu tar实际上会删除目录树。另一个迹象表明,保留目录树是一个错误。或者至少是一些变通的办法,直到他们修复它。
这是我在ubuntu 10.04控制台中试过的。
mit:/var/tmp$ mkdir tree1 mit:/var/tmp$ mkdir tree1/sub1 mit:/var/tmp$ \> tree1/sub1/file1 mit:/var/tmp$ ls -la drwxrwxrwt 4 root root 4096 2011-11-14 15:40 . drwxr-xr-x 16 root root 4096 2011-02-25 03:15 .. drwxr-xr-x 3 mit mit 4096 2011-11-14 15:40 tree1 mit:/var/tmp$ tar -czf tree1.tar.gz tree1/ --remove-files # AS YOU CAN SEE THE TREE IS GONE NOW: mit:/var/tmp$ ls -la drwxrwxrwt 3 root root 4096 2011-11-14 15:41 . drwxr-xr-x 16 root root 4096 2011-02-25 03:15 .. -rw-r--r-- 1 mit mit 159 2011-11-14 15:41 tree1.tar.gz mit:/var/tmp$ tar --version tar (GNU tar) 1.22 Copyright © 2009 Free Software Foundation, Inc.
如果你想在你的机器上看到它,请把这个粘贴到控制台,风险自负:
tar --version cd /var/tmp mkdir -p tree1/sub1 \> tree1/sub1/file1 tar -czf tree1.tar.gz tree1/ --remove-files ls -la
``` 0x1&