Вы можете найти пути, используя свой список имен, и find , но вы можете оказаться в небольшом угловом регистре, если у вас есть файлы с одинаковыми именами в разных каталогах.
Если это не имеет значения, вы можете сделать следующее:
find <main_directory> | grep -f mylist.txt
А затем, используйте список для вашей команды tar . Полная команда может выглядеть так:
tar cvf allfiles.tar -T <(find <main_directory> |
grep -f mylist.txt --color=never)
Обратите внимание, что вы должны использовать --color=never , иначе, если цвета для вашего grep активны, вы бы отправили неверный ввод для tar .
Чтобы игнорировать различия в регистре, в этом случае в grep , который фактически фильтрует файлы, вы можете просто добавить флаг -i:
tar cvf allfiles.tar -T <(find <main_directory> |
grep -i -f mylist.txt --color=never)