tar 命令 - 跳过符号链接

tar 命令 - 跳过符号链接

我使用 tar 命令,

tar -cvf protTests.tar protTests/*

tar文件夹内的所有文件,protTests.但这包括文件夹内的符号链接,这不是我们想要的。

是否有一个命令行选项可以省略所有符号链接?

答案1

您可以这样做,提供tar内部所有文件的列表protTests(符号链接除外):

find protTests -maxdepth 1 -mindepth 1 -not -type l -print0 |
  tar --null --files-from - -cvf protTests.tar

顺便说一下,您现有的命令:

tar -cvf protTests.tar protTests/*

不会存档全部中的文件protTests,它只会归档那些名称不以 开头的文件.(那些未隐藏的文件)。 glob*运算符会跳过名称以 开头的文件.。该命令还存在一个问题,即如果protTests有大量文件(超过数千个),则protTests/*可能会扩展到太多参数以适应命令行。

像这样的更简单的命令不会有这些问题:

tar -cvf protTests.tar protTests

答案2

我的 tar 实现是最好的方法

star -cv -f out.tar -find protTests ! -type l

相关内容