我想创建一个tar文件,其中包含一个目录中的所有文件减去该目录中的子目录,并将该tar文件放在其中一个子目录中。例如,/test中有几个.txt文件,/test还有另一个名为ArchivedFiles的目录。我想告诉tar命令归档所有.txt文件,并将其放在/test/ArchivedFiles中
我该怎么做?
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
以下命令将起作用。它会将任何子目录放入tar中,但不会将这些子目录的内容放入tar中。这意味着,如果你把焦油放进一个分区,你就不必担心它会把自己放在里面。。。
例如,如果您想将当前目录中的所有文件放入名为mytar.tar的tar文件中,该文件位于名为d1:的子目录中
tar --no-recursion -cvf d1/mytar.tar *