Você pode encontrar os caminhos usando sua lista de nomes e find
, mas você pode ser pego por um pequeno caso, dado quando você tem os arquivos com o mesmo nome em diretórios diferentes.
Se isso não importa realmente, você pode fazer o seguinte:
find <main_directory> | grep -f mylist.txt
E, em seguida, use a lista para o comando tar
. O comando completo pode se parecer com:
tar cvf allfiles.tar -T <(find <main_directory> |
grep -f mylist.txt --color=never)
Observe que você deve usar --color=never
, caso contrário, se as cores estiverem ativas para o seu grep, você estará enviando uma entrada inválida para tar
.
Para ignorar distinções de maiúsculas e minúsculas, neste caso, em grep
, que é o arquivo realmente de filtragem , você pode simplesmente adicionar a sinalização -i
:
tar cvf allfiles.tar -T <(find <main_directory> |
grep -i -f mylist.txt --color=never)