2011-06-28 122 views
0

我想创建一个目录中的所有文件的tar文件减去该目录中的子目录,然后将该tar文件放在其中一个子目录中,目录的。例如,我在/ test中有几个.txt文件,在/ test中有另一个名为ArchivedFiles的目录。我想告诉tar命令将所有.txt文件归档并放在/ test/ArchivedFiles中。
我该如何去做这件事?在要归档的目录的子目录中创建一个tar文件

回答

1
tar cf test/foo/test.tar -- `find test -maxdepth 1 -name '*.txt' -type f` 

我认为应该做你想做的。

,不会因你的tar命令的年龄正常工作的选项是:

find test -maxdepth 1 -type f -name '*.txt' -print0 | tar -cf test/foo/test.tar --null --files-from - 

你有问题,所以你可以尝试下面的命令:

tar cf test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f` 
echo tar cf test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f` 
tar c f test/foo/test.tar `find test -maxdepth 1 -name '*.txt' -type f` 
find test -maxdepth 1 -name '*.txt' -type f 

而且引擎收录的输出,以便我们可以看到发生了什么。

因为发现是很传统的为好,让我们尝试以下操作:

tar cf test/foo/test.tar test/*.txt 
+0

这给了我:用法:焦油{C | R | T | U | X} [bBdDEfFhilLXmNopRsSUvw [0-9] [Blocks] [TarFile] [InputList] [ExcludeFile] [[Feet] | [英尺@密度] | [Blocksb]] [-C目录]文件... – Ben

+0

@Ben:哪个命令?此外,你使用的是什么版本的焦油? –

+0

@Ben:另外,你的任何.txt文件都有空格,还是以 - 字符开头?如果你正在运行第一个版本(可能你是最好的,因为你有这样一个老版本的tar),那么如果你仍然有问题并发布结果,那么在echo命令前面加上前缀,以便我们可以看到发生了什么问题。 –

0

以下命令将工作。它会将所有子目录放入tar中,但不会将这些子目录的内容放入tar中。这意味着如果你把焦油放到一个子目录中,你将不必担心它将自己放入其本身内部...

例如,如果你想把所有在当前目录成tar文件名为mytar.tar这是一个子目录称为D1:

tar --no-recursion -cvf d1/mytar.tar * 
+0

从使用消息中,它看起来非常类似于OP正在使用一个非常旧的(遗留)焦油。没有GNU焦油与所有花哨的选项。 –

相关问题