Вы можете найти пути, используя свой список имен, и 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)