Estou tentando usar o tar(1) para criar um arquivo de arquivos mais recentes que um arquivo específico ( fileA
). No entanto, quando uso find(1) para obter a lista de arquivos a serem passados para o tar, alguns arquivos são listados várias vezes:
$ 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
Usar xargs(1) para passar a lista de arquivos para tar resulta em um comportamento semelhante:
$ find test -newer fileA | xargs tar -c -v > test.tar
test/
test/fileC
test/fileB
test/fileC
test/fileB
Usar sort(1) e uniq(1) para remover duplicatas também não funciona:
$ find test -newer fileA | sort | uniq | xargs tar -c -v > test.tar
test/
test/fileC
test/fileB
test/fileB
test/fileC
Existe uma maneira de o tar incluir apenas cada arquivo mais recente de fileA
uma vez?
Edit: Estou procurando especificamente uma solução que não envolva extensões GNU para tar (por exemplo, que funcionaria com suckless tar ).