我使用 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