我正在尝试使用 tar(1) 创建比特定文件 ( fileA
) 更新的文件的存档。但是,当我使用 find(1) 获取要传递给 tar 的文件列表时,会多次列出一些文件:
$ touch fileA
$ mkdir test
$ touch test/{fileB,fileC}
$ tar -c -v $(find test -newer fileA) > test.tar
test/
test/fileC
test/fileB
test/fileC
test/fileB
使用 xargs(1) 将文件列表传递给 tar 会导致类似的行为:
$ find test -newer fileA | xargs tar -c -v > test.tar
test/
test/fileC
test/fileB
test/fileC
test/fileB
使用 sort(1) 和 uniq(1) 删除重复项也不起作用:
$ find test -newer fileA | sort | uniq | xargs tar -c -v > test.tar
test/
test/fileC
test/fileB
test/fileB
test/fileC
有没有办法让 tar 只包含比fileA
一次更新的每个文件?
编辑:我正在专门寻找一个不涉及 tar 的 GNU 扩展的解决方案(例如,它可以与suckless tar一起使用)。